2010-07-06 135 views
7

考慮用於Intranet的站點,該站點也應可從Internet訪問。在Intranet上,您希望使用Windows身份驗證,並在Internet上希望用戶使用表單身份驗證訪問網站。將Windows身份驗證與表單身份驗證混合使用

是否有可能與這兩者建立混合模式?我只想驗證用戶是否使用其中任何一個登錄而不使用兩個站點。

回答

1

嘿,我已經看到這個頁面談論與IIS7的2級認證:IIS 7.0 Two-Level Authentication with Forms Authentication and Windows Authentication,而這與你具有相同的要求:IIS混合模式認證的ASP.NET應用程序 - http://beaucrawford.net/post/IIS-ldquo3bmixed-moderdquo3b-authentication-for-ASPNET-Application.aspx,但我沒有嘗試任何,也許它適合你?我想你只需要根據你的需求來調整它。

+0

鏈接的解決方案似乎很徹底,但確實需要完全信任或gacced提供程序集。 – 2010-07-18 00:51:58

2

我知道沒有建立這樣做的方式。但是您可以使用簡單的解決方法:

選擇表單身份驗證作爲您的主要身份驗證並將其映射到Windows身份驗證。您可以在應用程序AuthenticateRequest中使用global.asax或特殊的http處理程序或模塊來執行此操作。在此請求中標識您的Intranet用戶,並以編程方式使用FormsAuthentication.SetAuthCookie設置表單身份驗證Cookie。

我實際上將它用於混合模式表單和IP-Number認證,但我認爲它也適用於窗體和Windows認證。

順便說一句:也許混合模式形式和IP號碼身份驗證是您的問題的第二個解決方案。如果您的服務器是DMZ的一部分,您可以通過IP號碼子網檢測您的Intranet用戶。