C# 通过桌面和web访问具有Windows身份验证的WCF服务
我有一个ASP.NET网站和一个WinForms应用程序连接到同一个WCF服务 WCF服务的web.config、WinForm应用的app.config和网站web.config上的绑定如下所示:C# 通过桌面和web访问具有Windows身份验证的WCF服务,c#,asp.net,wcf,webforms,windows-authentication,C#,Asp.net,Wcf,Webforms,Windows Authentication,我有一个ASP.NET网站和一个WinForms应用程序连接到同一个WCF服务 WCF服务的web.config、WinForm应用的app.config和网站web.config上的绑定如下所示: <ws2007HttpBinding> <binding name="LBinding" messageEncoding="Mtom"> <security mode="Message"> <tra
<ws2007HttpBinding>
<binding name="LBinding" messageEncoding="Mtom">
<security mode="Message">
<transport clientCredentialType="Windows" />
<message clientCredentialType="Windows" />
</security>
</binding>
</ws2007HttpBinding>
用户名/密码是Windows域凭据。用户名的格式为:域\用户名
在桌面应用程序和网站中,当用户输入正确的用户名/密码组合时,windows身份验证可以完美工作
但是,在网站上,当用户输入有效用户名和错误密码,并单击提交按钮验证其凭据时,DoSomething方法似乎“挂起”;实际上,它甚至从未在服务器上运行DoSomething()。我已经等了几分钟,浏览器似乎没有从DoSomething()调用返回
另一方面,在桌面应用程序中,当用户输入有效用户名和错误密码时,将显示默认的windows安全对话框。在这里,如果用户输入了正确的凭据,则会成功调用DoSomething();如果用户输入了错误的密码,则会再次显示相同的默认windows安全对话框,要求用户重新输入其凭据
我的问题是:
serviceClient.ClientCredentials.SupportInteractive = false;
serviceClient.ClientCredentials.SupportInteractive = false;