[英]WCF Service, Windows Authentication
我們編寫了一個部署在IIS上的WCF服務。 我們選擇了集成Windows身份驗證。 在這種情況下不能使用service服務,但是如果我們可以將WCF服務的IIS虛擬目錄的身份驗證方法設置為“匿名”,則錯誤將消失。 但是,對於我們的WCF服務,“匿名”是不可接受的。 我們必須使用集成Windows身份驗證來驗證客戶端。 有人知道如何解決此問題嗎?
提前致謝,
阿希什
您必須做一些事情:
創建以下綁定配置:
<basicHttpBinding> <binding name="Binding1"> <security mode="TransportCredentialOnly"> <transport clientCredentialType="Windows" /> </security> </binding> </basicHttpBinding>
將以上配置應用於您的服務和mex:
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="Binding1" contract="IService"> </endpoint> <endpoint address="mex" binding="basicHttpBinding" bindingConfiguration="Binding1" contract="IMetadataExchange"> </endpoint>
創建一個客戶端並使用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”在本地創建帳戶
您需要注意兩件事:
這可能是第二個給您帶來麻煩的問題。 IIS日志應包含正在進行呼叫的用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.