在我的一个应用程序中,我在通过 Windows 帐户连接和验证 WCF 服务时遇到问题。为了测试这一点,我将它移到了一个新的解决方案中,其中包含一个简单的控制台应用程序和 VS2010 中的标准 WCF 启动应用程序。
WCF 代码,用于一个简单的操作:
[PrincipalPermission(SecurityAction.Demand, Role = "xxxx\\xxxxxx")]
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
配置文件:
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IService1">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" proxyCredentialType="Windows"/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:16674/Service1.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IService1" contract="testService.IService1"
name="BasicHttpBinding_IService1" />
</client>
以及对此的呼吁:
testService.Service1Client sv = new testService.Service1Client();
sv.GetData(1);
我收到标准的“委托人许可请求失败”。错误虽然我看不到配置文件有什么问题。我在创建服务对象时查看了它,并且 ClientCredentials.Windows 和用户名对象为空。谁能帮帮我,我在这里是不是很傻?
谢谢