2011-10-07 6 views
1

동적으로 ASP.NET에 특정 위치에 대한 액세스를 거부하도록 지시하려고합니다. 그래서, Web.config에서 다음과 같은 것을하는 대신, C# 코드를 통해 그렇게하고 싶습니다.동적으로 위치 액세스 거부

<location path="specialDir"> 
    <system.webServer> 
     <security> 
      <authorization> 
       <add accessType="Deny" 
        roles="FileDeny" /> 
      </authorization> 
     </security> 
    </system.webServer> 
</location> 

어떤 아이디어?

답변

2
void Page_Load(...) 
{ 
    if (this.Context.User != null && 
     !this.Context.User.IsInRole("FileDeny") 
     ) 
     Response.Redirect(FormsAuthentication.LoginUrl); 

페이지 수준에서 가장 간단한 해결책이 될 것입니다. 사용자 정의 인증 모듈이나 기본 페이지 클래스와 같은 더 멋진 것은 무엇이든 가능합니다.

+0

고마워요! 이것이 제가 찾고 있던 것입니다. 나를 조금 어리 석 게 만든다 :-) – charisk

0

요구 사항은 무엇인지 모르지만 요청 uri를 구문 분석하고 사용하는 기능을 통해 디렉토리/페이지 정보 (사용자 자격 증명 포함)를 실행하여 액세스 수준을 결정할 수있는 기본 페이지 클래스를 가질 수 있습니다. 해당 디렉토리/페이지에 대한 액세스 권한을 결정할 수 있습니다.

0

나는 다른 방법으로이 파일을 추가 할 것입니다. 사전에 선택한 폴더 권한이있는 폴더에 파일을 추가하십시오. 이런 식으로해야 할 이유가 있을지 모르지만 나중에 새 권한/역할을 추가하면 어떻게 될까요? 폴더에 할당 된 (그리고 DB 테이블에 저장되어있는) 사용자에 대해 사용자 권한/역할의 교차 검사를 수행하는 데이터베이스 접근 방식을 사용하는 것이 좋습니다.

더 좋은 방법은 단일 폴더를 사용하고 데이터베이스 필드 값에서 액세스를 할당하는 것입니다.

관련 문제