2010-06-14 3 views
3

내 관리자 폴더에 대한 액세스를 특정 사용자에게만 제한해야합니다. 인증 티켓이없는 사용자는 "허용되지 않는 페이지"로 리디렉션되어야합니다. 내 관리 폴더에있는 모든 페이지를 어떻게 식별합니까? 나는 지금까지 그래도 괜찮습니까?web.config가없는 폴더의 모든 파일에 대한 액세스를 제한하는 방법

If url.Contains("/admin") Then

'잘못된 인증 티켓은

 `Response.Redirect("~/notallowed_admin.aspx")` 

End If

그리고하지, 나는이 특정 문제에 대한 내 Web.config의를 사용할 수없는 경우.

많은 감사

답변

1

당신은 당신이 가끔 불일치를 방지하기 위해 정규 표현식에 의해보다 정확한 일치와 컨디셔닝 교체하는 것이 현명 할 것입니다, 보안 검사는 또한

을 Global.asax에에 투입해야한다.

protected override void Application_BeginRequest(Object sender, EventArgs e) { 
     if (Regex.IsMatch(Request.Url.ToString(),@".*/system\.aspx/admin.*\.aspx",RegexOptions.IgnoreCase)) { 
      Response.Redirect("~/AdminSecurityCheck.aspx"); 
      return; 
     } 
     ....... 
    } 
0

If url.contains("/admin")는 대부분의 경우에 충분합니다. 하지만 대부분의 프로그래머는 KLUDGE가 아닌 것으로 판단합니다.

승인을 확인하고 리디렉션하는 코드가 포함 된 Page 클래스에서 상속받을 추상 클래스를 작성할 수도 있습니다. 그런 다음 admin 폴더의 모든 코드 숨김 파일에 대한 클래스를 상속하도록 선언 할 수 있습니다.

저는 네가하고 싶은 것은 가능하다고 믿습니다. web.config는 MS가 권한 부여를하는 방법을 지정하기 위해 제공하는 것이기 때문에 당신이하는 일은 KLUDGE 양식의 .net 관점 일 것입니다.

+0

대단히 감사합니다. 나는 전체 사이트에 대한 액세스를 제한하기 위해 web.config를 사용하고 있지만 admin 섹션에는 "admin accounts"가있는 사용자 만 액세스 할 수 있습니다. 이 사람들의 사용자 이름은 사용자가 사이트를 방문 할 때 내가 호출하는 데이터베이스에 저장됩니다. 관리자 계정이있는 경우 관리 섹션을 사용할 수 있습니다. 그렇지 않으면 사이트의 나머지 부분 만 볼 수 있습니다. – netNewbi3

+0

AD 계정을 사용하는 경우 디렉토리 보안을 사용하여 제한을 설정할 수 있습니다. –

+0

다른 사이트에서이 방법을 여러 번 사용해 본 결과 어떤 페이지가 실제로 제한되어 있는지 좀 더 분명하게 알려주기 때문에 선호합니다. –

관련 문제