繁体   English   中英

如何在WCF中设置安全令牌?

[英]How to set a Security Token in WCF?

我正在将应用程序从.net 1.1升级到3.5。 此应用程序连接到WCF服务。 以前,Web服务客户端配置为使用安全令牌,如下所示:

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" />

在MSDN上查看这篇文章 这篇文章也有一些关于你的问题的好信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM