2011-05-12 51 views
1

我有一個網站,絕大多數內容將使用表單身份驗證進行保護。但是,有一個子文件夾將由管理人員在內部使用。我想使用Windows身份驗證來保護此文件夾。那可能嗎?我需要將admin文件夾設置爲虛擬目錄嗎?是否可以在ASP.NET網站中同時使用表單身份驗證和Windows身份驗證?

澄清:行政人員不需要訪問主站點。他們真的是兩個獨立的網站/應用程序。普通用戶將通過表單身份驗證訪問主應用程序(並且不會訪問admin文件夾)。管理員用戶將通過Windows身份驗證訪問管理員應用程序(並且不會訪問主站點)。

感謝, 科瑞

回答

1

是的,這是可能的,但你必須建立一個自定義的成員提供或接口,以允許它。除非它們位於完全獨立的項目/應用程序域中,否則無法在子文件夾上指定單獨的身份驗證方法。

完成此操作的一種方法是使用LDAP成員資格提供程序並根據用戶名更改ldap連接(如果存在可識別的方法)。

另一種方法是提供一個單獨的網站,該網站使用Windows身份驗證來執行登錄,然後爲用戶構建一個自定義Cookie並將其傳輸回原始網站,將該個人識別爲管理人員的成員。

然後可以使用web.config中的<location>元素保護文件夾。

0

如果我打算使用混合身份驗證構建站點,我將設置網站以使用webforms。然後,我會在此應用程序內部設置一個虛擬應用程序,該虛擬應用程序由與auth web.config相同的信息組成,但設置爲使用Windows身份驗證。

驗證其憑據後,在Windows驗證網站的登錄頁面上,我會手動調用FormsAuthentication創建驗證令牌。此時,您可以將用戶重定向到Forms Auth站點,並且應該登錄(只要所有表單auth cookie信息對於兩個站點都是相同的,這可能還包括需要爲兩個站點設置相同的機器密鑰應用程序)。

我沒有專門做這件事,但這絕對應該是一個可行的(也許是最優化的)解決方案之一。

+0

嗯,也許我沒有在我最初的問題中澄清這一點。實際上,無需通過Windows身份驗證登錄到管理應用程序的管理員用戶訪問網站的其他部分(反之亦然)。他們確實是兩個完全獨立的網站/應用程序。也許更好的方式來描述它是我有一個表單身份驗證,將有一個文件夾,將由管理員用戶訪問使用Windows身份驗證和管理員用戶不需要訪問應用程序的其餘部分。 – 2011-05-12 14:48:38

0

這可能就像在Windows資源管理器中右鍵單擊admin文件夾並在安全選項卡中設置權限一樣簡單。

0

將管理站點放在自己的應用程序中 - 右鍵單擊​​IIS管理器中的文件夾,然後選擇轉換爲應用程序。

完成後,您可以通過在IIS管理器中突出顯示應用程序文件夾,然後選擇身份驗證並調整它們來調整應用程序的身份驗證方法(或者,如果無法遠程執行,則可以通過web.config執行此操作進入機器)。