WCF服务,Windows身份validation

我们编写了一个部署在IIS上的WCF服务。 我们选择了集成Windows身份validation 在这种情况下不能使用服务,但如果我们可以将IIS虚拟目录的身份validation方法设置为WCF服务的“匿名”,则错误将消失。 但我们的WCF服务不接受“匿名”。 我们必须使用集成Windows身份validation来validation客户端。 任何人都知道如何解决这个问题?

提前致谢,

阿希什

你必须做一些事情:

  • 取消选中Virtual forlder的匿名访问,然后选中Integrated windows security。
  • 创建以下绑定配置:

           
  • 将以上配置应用于您的服务和mex:

          
    • 创建客户端并使用NetworkCredential传递凭据:

        ServiceReference.MyClient proxy = new ServiceReference.MyClient(); proxy.ClientCredentials.Windows.ClientCredential = new System.Net.NetworkCredential("MACHINENAME\\USERACCOUNT", "passwrd"); proxy.YourServiceOperation(); 

还有其他方法可以单独设置用户名和密码,但它在.Net 4.0中不起作用。 USERACCOUNT是您的WCF主机加入的域帐户或LDAP。 如果服务器未加入域,则通过运行“lusrmgr.msc”在本地创建帐户

您需要注意两件主要事项:

  1. 您的配置是否一致:IIS,web.config(system.web和WCF)
  2. 您的客户端是否随请求发送Windows身份validation信息

它可能是第二个给你带来问题的东西。 IIS日志应包含正在进行呼叫的用户。