相关疑难解决方法(0)

如何在WCF客户端配置文件中指定Windows凭据

我有一个使用BasicHttpBinding和Windows身份验证的WCF服务.大多数客户端都是域帐户,并使用其默认凭据连接到服务.

现在,我想从在本地帐户下运行的ASP.NET客户端连接到该服务.我想使用ASP.NET应用程序可用的Windows凭据(域\用户和密码)连接到WCF服务.

我知道我可以使用ClientBase <T> .ClientCredentials在代码中执行此操作.

有没有办法在客户端的web.config文件中指定凭据(域\用户和密码),所以我不必更改代码?

编辑

如果无法在配置文件中完成,是否有办法使用System.Net.ICredentials或System.Net.NetworkCredential作为WCF服务的凭据?

.NET Framework提供了这些作为提供网络凭据的同类方式,但是对于WCF,这似乎已经被抛弃,而不是基于不相关的System.ServiceModel.Description.ClientCredentials类的新的不兼容系统.

编辑2

接受Marc对原始问题的回答 - 似乎在客户端配置文件中没有办法做到这一点:(

我认为这是WCF的一个缺陷 - 我不接受微软应该故意阻止我们在配置文件中放置凭据 - 毕竟它们必须存储在某个地方,而Framework包含加密配置文件的工具.我想我可以为此创建一个自定义的BehaviorExtensionElement,但它应该是开箱即用的.

它也有点不一致:system.net/mailSettings/smtp/network配置元素允许指定凭据,为什么不WCF?

关于使用System.Net.NetworkCredential的第二个问题,从这个博客看来,至少在使用Windows身份验证时,可以使用以下代码:

factory.Credentials.Windows.ClientCredential =
   new System.Net.NetworkCredential(name, password, domain);
Run Code Online (Sandbox Code Playgroud)

wcf credentials

25
推荐指数
3
解决办法
6万
查看次数

标签 统计

credentials ×1

wcf ×1