7
我正在將應用程序從.net 1.1升級到3.5。這個應用程序連接到WCF服務。以前,Web服務客戶端配置爲使用安全令牌,就像這樣:如何在WCF中設置安全令牌?
RegistrationWSWse registrationService = new RegistrationWSWse();
Microsoft.Web.Services2.Security.Tokens.UsernameToken token = new Microsoft.Web.Services2.Security.Tokens.UsernameToken("some username", "some password", Microsoft.Web.Services2.Security.Tokens.PasswordOption.SendPlainText);
registrationService.RequestSoapContext.Security.MustUnderstand=false;
registrationService.RequestSoapContext.Security.Tokens.Add(token);
現在我已經添加在Visual Studio中的Web服務的新服務引用,但自動生成的代碼不提供任何形式設置安全標題,如上所述。
這是需要在配置文件system.serviceModel
部分配置的東西嗎?
更新
的原因,我沒有看到用戶名/密碼屬性是因爲我的服務接口,而不是實際的實現類的工作。
我能夠通過強制轉換實例的類型來設置這些東西,就像這樣:
((RegistrationWSClient)registrationWs).ChannelFactory.Credentials.UserName.UserName = userName;
((RegistrationWSClient)registrationWs).ChannelFactory.Credentials.UserName.Password = password;
你必須做其他重要的事情就是更新客戶端app.config文件。如果你不這樣做,用戶名/密碼將不會被設置在SOAP頭中。例如:
<security mode="TransportWithMessageCredential" />
感謝您的鏈接Kamyar。問題是我正在與服務接口進行交互,而不是代理類。我只需要進行轉換來設置用戶名/密碼 - 參見上文。 – 2010-11-09 17:17:05
@保羅:很高興你的工作。我也學到了一些新東西。謝謝。 – Kamyar 2010-11-09 18:23:03