2009-02-08 30 views
2

將用戶重定向到Login頁面依賴於他們所在的文件夾。我有一個Web應用程序,其中包含所有用戶和管理站點使用的根目錄。使用ASP.NET成員將用戶重定向到Mulitple登錄頁面

對於那些需要經過身份驗證的網站功能的用戶,他們需要登錄並重定向到root/login.aspx。然而,當管理員需要登錄到該站點的根目錄/管理/節,我希望他們被重定向到根上的登錄表單/管理/ login.aspx的

<configuration> 
     <appSettings/> 
     <connectionStrings/> 
    <system.web> 
     <authorization> 
     <deny users="?" /> 
     </authorization> 
    </system.web> 
    </configuration> 

我有這個文件root/admin目錄。我已經嘗試添加以下行,但它給出了一個錯誤。

<authentication> 
    <forms defaultUrl="default.aspx" loginUrl="default.aspx"></forms> 
    </authentication> 

基本上我試圖覆蓋存在於主應用程序的defaulturl和loginurl。

+0

你還在尋找答案嗎? – cgreeno 2009-02-26 22:25:34

+0

是的,我......確實! – TimLeung 2009-02-27 04:31:16

回答

9

您需要在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"); 

教程

4 Guys From Rolla Tutorial

The ASP.NET web.config File Demystified

相關問題