我使用Windows身份驗證和ASP.NET模擬,通過IIS7對用戶進行WCF服務身份驗證。如何模擬用戶到WCF服務?
在本地調試時,我能夠看到System.Security.Principal.WindowsIdentity.GetCurrent()。名稱與我的Windows憑據相同。當我將此服務部署到服務器時,除非啓用匿名身份驗證,否則WCF將無法運行。
那麼,我們如何得到這個WCF服務與匿名驗證禁用在服務器上運行?
的認證方案主機 ( 'IntegratedWindowsAuthentication')上配置不允許那些 的結合 '的WebHttpBinding' 配置('匿名:嘗試都建議後的錯誤消息:
UPDATE 1 「)。請確保將 SecurityMode設置爲Transport或TransportCredentialOnly。 此外,這可以通過改變認證 方案爲通過IIS管理工具本申請中,通過 的ServiceHost.Authentication.AuthenticationSchemes屬性,則 應用配置文件中的 元件,通過在更新ClientCredentialType屬性來解決綁定, 或通過調整 HttpTransportBindingElement上的AuthenticationScheme屬性。
更新2:
應用程序池:該認證以下面的方式設置
- 身份=網絡服務
網站:
- 匿名身份驗證=禁用
- ASP.NET驗證=啓用
- Windows身份驗證=啓用
WCF應用:
- 匿名身份驗證=禁用
- ASP.NET驗證=啓用
- Windows身份驗證=已啓用
謝謝。但是,我們需要使用webHttpBinding而不是basicHttpBinding,這是爲了使我們能夠爲服務定義默認行爲。請看看這個問題,看看我們目前收到的錯誤信息。 – aleafonso