2008-09-29 64 views
0

我有一個應用程序使用窗體身份驗證來驗證一種類型的用戶。此應用程序中有一部分需要使用數據庫中的其他表格進行另一種類型的用戶的身份驗證。如果第二種類型的用戶會話超時,則會出現問題,她將轉到主Web.Config的「表單身份驗證」部分中定義的登錄頁面,而不是第二種類型用戶的登錄頁面。我正在尋找解決這個問題的方法。一個想法是在IIS中爲該部分創建一個應用程序,併爲該文件夾創建一個Web.Config並添加另一個Forms Authentication部分。在我的實驗中,似乎這是行不通的。我錯過了明顯的東西嗎?任何見解?我們可以在使用Forms Authentication的另一個應用程序中使用自己的Web.config和Forms Authentication部分創建應用程序嗎?

回答

1

IIRC,驗證每個文件夾都有效。因此,如果所有需要第二種身份驗證類型的頁面都使用自己的配置存在於特定的子文件夾中,則應該可以這樣做。

雖然不是100%肯定的,但如果有人更有知識可以反駁我,我會刪除回覆。

1

您可能需要仔細檢查語法,但頂級web.config可以有任意數量的標記。

<location>...</location> 

在裏面你可以爲你想要的任何文件夾/文件指定單獨的配置參數。請參閱here以供參考。

編輯:Apoligies,我忘了格式化代碼正確

+0

但是,您不能在位置標記內進行身份驗證 - 請參閱http://msdn.microsoft。com/en-us/library/532aee0e.aspx下的可配置位置。 – 2008-10-02 11:23:47

0

你不能有一個<位置>標籤內的<認證>部分,所以你必須有子文件夾設置爲一個IIS(和ASP。 NET)它自己的應用程序。所以,你應該可以自己運行這個子部分。

我認爲500.19是「無法讀取或解析web.config」錯誤 - 它有詳細信息嗎?您可能需要打開遠程錯誤(或檢查事件查看器)才能看到它們。如果您仍然遇到問題,請發佈web.config片段。另外 - 我從來都不是嵌套應用程序的粉絲,而且可能更喜歡讓普通的Login.aspx頁面處理它作爲MemberOf,或者可能重定向到SpecialUserLogin.aspx或其他東西。嵌套應用程序是PITA的設置和測試,IME(例如 - 我不認爲你甚至可以讓它在Cassini下工作 - 儘管你可以爲它做兩個單獨的項目,並在部署時組合)。

0

是的,你可以。 Web.config文件具有帶覆蓋功能的樹狀繼承架構。這意味着您可以通過在其中放置一個web.config文件並指定不同的配置設置來修改子文件夾內的設置。

0

我理解這個問題的方式,你有兩個解決方案,第一個是看角色,整個Provider Model將是一個很好的開始。否則,最好的辦法是將應用程序分成兩部分,打破第二個用戶類型區域,然後通過虛擬目錄將其包括回主項目中。請記住,虛擬目錄從父目錄web.config繼承它們的權限,因此您將需要使用<Location>標記去除虛擬目錄的身份驗證,然後在虛擬目錄內定義新的表單身份驗證。如果您在窗體身份驗證下需要Windows身份驗證(NTLM),此方法運行良好。

相關問題