您需要在web.config中使用<location>
元素。您可以使用<location>
標籤將授權設置應用於單個文件或目錄。
<location path="/root">
<system.web>
<authentication mode="Forms" >
<forms name="LoginForm" defaultUrl="default.aspx"
loginUrl="/root/login.aspx" protection="Encryption"
timeout="30" path="/"/>
</authentication>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
<location path="/root/admin">
<system.web>
<authentication mode="Forms" >
<forms name="formName" defaultUrl="login.aspx"
loginUrl="/root/admin/login.aspx" protection="Encryption"
timeout="30" path="/"/>
</authentication>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
MSDN
對於集中管理, 設置可以在 Machine.config文件被應用。 Machine.config文件中的設置 定義了 機器範圍的策略,也可以是 用於應用特定於應用程序的 配置使用<location>
元素。開發人員可以提供 應用程序配置文件到 覆蓋機器策略的各個方面。 對於ASP.NET Web應用程序, Web.config文件位於 應用程序的虛擬根目錄 中,並且可選地位於虛擬根目錄下的子目錄 中。
如果您需要1個登錄位置和不同的訪問級別,您可能需要使用roles。
<location path="/root">
<system.web>
<authorization>
<allow roles="admin,root" />/*admin, root is allowed */
<deny users="*" />
</authorization>
<system.web>
</location>
<location path="/root/admin">
<system.web>
<authorization>
<allow roles="admin" />/*admin is allowed */
<deny users="*" />
</authorization>
<system.web>
</location>
用戶可以屬於多個 作用。例如,如果您的網站是 論壇,則某些用戶可能是 擔任成員和 版主。您可能會將每個角色 定義爲在 網站上擁有不同的權限,並且同時擁有這兩個角色 的用戶將擁有兩組 權限。
您可以在 代碼級訪問所有這些元素,如果你想 操縱角色/認證 編程
Page.User.Identity.Name
Page.User.Identity.IsAuthenticated
Page.User.Identity.AuthenticationType
Page.User.IsInRole("string");
其他鏈接
Using 2 Membership Providers in asp.net
4 Guys From Rolla Tutorial
The ASP.NET web.config File Demystified
您是否有2個不同的URL或查詢字符串參數,以最初將用戶推送到正確的登錄頁面? – cgreeno 2009-04-28 21:19:02