我們正在開發基於瀏覽器的Intranet應用程序。所有用戶都有活動的目錄帳戶,因此明顯的選擇是使用集成Windows身份驗證。但是會有多個用戶訪問相同的客戶端機器,因此我們決定使用基於表單的身份驗證(但是針對AD進行身份驗證)。如何驗證ASP.NET和WCF之間的用戶身份?
在這種情況下什麼是我的ASP.NET應用程序(IIS)和WCF服務(另一臺服務器IIS 7)之間進行身份驗證的最佳途徑。我不想使用asp.Net兼容模式或證書。
我想創造另一個域帳戶進行身份驗證ASP.NET和WCF。我還將有關當前ASP.NET用戶的信息作爲標題信息傳遞給WCF。這是正確的方法嗎?以下代碼將從ASP.NET調用以訪問並獲取每種服務方法。
// Call WCF service from ASP.NET Application using a new domain account for each call.
proxy.ClientCredentials.Windows.ClientCredential.Domain = "mydomain";
ServiceReference.HelloWorldClient proxy = new ServiceReference.HelloWorldClient();
proxy.ClientCredentials.Windows.ClientCredential.UserName = "new_domain_account";
proxy.ClientCredentials.Windows.ClientCredential.Password = "password";
有沒有更好的辦法從ASP.NET驗證WCF?
感謝, 灰。
將wcf服務設置爲集成Windows身份驗證。將有許多用戶使用他們的AD帳戶訪問一臺客戶端PC。他們不想註銷窗口來訪問此應用程序。所以我設置表單身份驗證。但是他們登錄後(表單),如果他們訪問WCF,身份將是原始的Windows登錄用戶而不是表單用戶。 – Ash 2010-02-19 01:19:34
啊,我想我明白了,你不想設置Kerberos。如果您設置Kerberos,那麼您可以在Web服務上使用AD進行身份驗證,而無需用戶執行任何操作。或者這是你談論的更好的方式? – Hogan 2010-02-19 01:22:17
是的,我想安裝Kerberos,我想用AD進行身份驗證,但是有任何方法可以將當前已通過身份驗證的ASP.NET窗體用戶傳遞給WCF,以便WCF將其視爲當前用戶。 (AD用戶)。目前WCF進行身份驗證,但不是最新的表單用戶,而是原始的Windows登錄用戶。感謝您的鏈接,但我找不到正確的答案。 – Ash 2010-02-19 01:37:14