2012-03-28 5 views
0

나는 asp.net에서 newb입니다. 저는 ASP.NET의 Membership 클래스를 사용하여 예제 작업을하고 있습니다. 예 : 내 프로젝트에 페이지가 있습니다. default.aspx, page1.aspx, page2.aspx. 나는 default.aspx에 로그인 컨트롤을 넣었다. 이제 사용자가 임의의 페이지에 액세스하려고 할 때 사용자의 인증을 확인하려고합니다. 이미 모든 페이지에서 Page_Load 이벤트에 가장 적게 적용되도록이 작업을 수행했습니다. 그러나 모든 페이지에서이 중복 코드를 제거 할 수 있도록 몇 가지 제안을 원합니다. 모든 페이지에 적용 할 수있는 논리를 구현합니다. global.asax 또는 모든 페이지에서 수표 인증을 상속받을 수있는 클래스를 사용해야합니까?asp.net 구성원의 공통 인증 로직

if(!HttpContext.Current.User.Identity.IsAuthenticated) 
     { 
Response.redirect("default.aspx"); 

     } 
+0

이 튜토리얼에서보세요 : http://www.4guysfromrolla.com/articles/120705-1.aspx ... http://msdn.microsoft.com/en- us/library/yh26yfzy.aspx ... http://www.asp.net/web-forms/videos/authentication. 간단하지만 완벽한 코드가 있습니다. http://msdn.microsoft.com/en-us/library/xdt4thhy%28v=vs.100%29.aspx –

답변

2

asp.net 응용 프로그램의 루트에있는 web.config 파일의 인증 요소에서 기본 로그인 페이지를 설정할 수 있습니다. 파일과 폴더에 대한 액세스 제어

예 ...

<authentication mode="Forms"> 
    <forms loginUrl="Login.aspx" 
      protection="All" 
      timeout="30" 
      name=".ASPXAUTH" 
      path="/" 
      defaultUrl="default.aspx" 
      cookieless="UseDeviceProfile" 
      enableCrossAppRedirects="false" /> 
    </authentication> 

는 인증 요소를 통해 이루어집니다.

예 ...

<authorization> 
    <allow roles="Admin" /> 
    <deny users="?" /> 
</authorization> 

자세한 내용 및 추가 예제 the documentation를 참조하십시오.

+0

괜찮습니다. 제 코드가 제대로 작동하고 있습니다. 우선, 대단히 감사합니다. 하지만 관리자 또는 이와 같은 종류의 역할을하는 특정 사용자의 페이지 액세스를 허용해야하는 경우 어떻게해야합니까? –

+0

권한 부여 요소에서 역할을 지정하고 예제를 업데이트 할 수 있습니다. – Baldy

0

.net에서는 authorization 요소를 사용하여 web.config 내에서이를 설정할 수 있습니다.

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

, 당신은 authentication 요소에서 지정한 로그인 페이지에서 떨어져 다른 페이지에 대한 액세스를 인증되지 않은 모든 사용자를 거부합니다. 인증의 목적 here

+0

괜찮아. 내 코드가 제대로 작동하고있어. 우선, 대단히 감사합니다. 하지만 관리자 또는 그러한 종류의 역할을하는 특정 사용자의 페이지 액세스를 허용해야하는 경우 어떻게해야합니까? –

0

에서 취한

<system.web> 
    <authentication mode="Forms"> 
    <forms loginUrl="Login.aspx" 
     protection="All" 
     timeout="30" 
     name=".ASPXAUTH" 
     path="/" 
     requireSSL="false" 
     slidingExpiration="true" 
     defaultUrl="default.aspx" 
     cookieless="UseDeviceProfile" 
     enableCrossAppRedirects="false" /> 
    </authentication> 
</system.web> 

은 대머리가 맞습니다.

페이지 당 복제하지 않으려는 다른 코드는 모든 페이지가 속한 마스터 페이지에 놓을 수 있습니다.

Masterpages가 : http://msdn.microsoft.com/en-us/library/wtxbf3hh.aspx