2009-02-08 6 views
2

사용자를 로그인 페이지로 리디렉션합니다. 모든 사용자와 관리 사이트에서 사용하는 루트 디렉토리가있는 웹 응용 프로그램이 있습니다.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

+0

예, 저는 .... 참으로! – TimLeung

+0

여전히 동일한 문제가 있습니까? – cgreeno

답변

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.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

+0

이것은 각 디렉토리가 응용 프로그램 인 경우에만 작동합니다. 응용 프로그램으로/root/admin을 구성 할 필요없이이를 수행 할 수있는 방법이 있습니까? –

관련 문제