WCF更改凭据

时间:2012-10-05 17:18:27

标签: wcf impersonation credentials basichttpbinding

我有一个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();

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

var ssc = ServiceSecurityContext.Current;

但是ssc始终为null。可以用basicHttpBinding来完成吗?

谢谢, 保罗

1 个答案:

答案 0 :(得分:2)

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