我有一个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来完成吗?
谢谢, 保罗
答案 0 :(得分:2)
basicHttpBinding支持Windows身份验证为documented in this good MSDN article.您还需要确保将服务操作配置为allow impersonation of the client credentials,以便按预期填充安全上下文。