WCF 更改凭据

Posted

技术标签:

【中文标题】WCF 更改凭据【英文标题】:WCF Changing credentials 【发布时间】:2012-10-05 17:18:27 【问题描述】:

我有一个 Web 应用程序,它在不同的服务器(Web 服务器、应用程序服务器和数据库服务器)上调用具有多个服务的 WCF Web 应用程序,所有这些服务都使用 basicHttBinding。其中一项服务必须连接到必须使用活动目录帐户调用的数据库。从网站进来的用户是匿名的。

我已获得设置此用户的凭据,但我无法让它工作。我像这样在网络服务器上创建我的频道:

ChannelFactory<T> channelFactory = GetChannelFactoryFromPool<T>(enpointAddress);       
channelFactory.Credentials.Windows.ClientCredential.UserName = username;
channelFactory.Credentials.Windows.ClientCredential.Password = password;
channelFactory.Credentials.Windows.ClientCredential.Domain = domain;
proxy = channelFactory.CreateChannel();

在应用服务器上的服务中,我试图通过这样做来确定凭据是否正确:

var ssc = ServiceSecurityContext.Current;

但 ssc 始终为空。这可以用 basicHttpBinding 完成吗?

谢谢, 保罗

【问题讨论】:

【参考方案1】:

basicHttpBinding 确实支持documented in this good MSDN article. 的 Windows 身份验证您还需要确保将服务操作配置为 allow impersonation of the client credentials 以按预期填充安全上下文。

【讨论】:

以上是关于WCF 更改凭据的主要内容,如果未能解决你的问题,请参考以下文章

如何在每个请求中将 winform 自定义用户凭据传递给 WCF 服务?

WCF 使用凭据和 IIS 以编程方式启用 TLS

无法使用基本领域配置凭据 WCF?

服务器已拒绝客户端凭据,WCF 作为 Windows 服务

服务器已拒绝客户端凭据,双工wcf服务

使用 Azure 应用服务中托管的 WCF 服务时出现凭据错误