2011-08-10 4 views
7

나는 응용 프로그램을 만들고 ELMAH 로깅을 구현했습니다. 내 사이트에는 세 가지 유형의 사용자가 있습니다. 웹에서 관리자 로그인을 위해 ELMAH.axd에 대한 액세스 만 제공하는 방법

  • 관리 : 모든 (권한 elamh.axd 볼) 수
  • 사용자이 : (elamh.axd 볼 수 없습니다) 자신의 권리를 가질 수 있습니다
  • 고객 : 유일한보기 (수 없다 보기 elamh.axd)
  • 위 사용자는 데이터베이스에 저장됩니다.

    Probelm : - 어떻게 사용자 및 게스트의 보호 수준을 관리하여 ELMAH.axd 로그 파일을 볼 수 있습니까? 당신이 Roles를 사용하는 경우

    답변

    10

    당신은 당신의 Web.config에 이것을 추가 할 수 있습니다

    <location path="~/elmah.axd"> 
        <system.web> 
         <authorization> 
          <allow roles="Admin" /> 
          <deny users="*" /> 
         </authorization> 
        </system.web> 
    </location> 
    

    당신이 역할을 사용하지 않는 경우 당신은 당신이에 대한 액세스 권한을 부여 할 각 사용자 지정해야합니다 :

    <location path="~/elmah.axd"> 
        <system.web> 
         <authorization> 
          <allow users="user1, user2, user3" /> 
          <deny users="*" /> 
         </authorization> 
        </system.web> 
    </location> 
    

    업데이트 :

    당신이 인증/권한 부여에 내장하고 그렇지 헥타르 중 하나를 사용하지 않는 것처럼 이벤트를 처리해야하는 elmah 페이지의 제어 :

    protected void Application_BeginRequest() 
    { 
        if(Request.Url.AbsolutePath.ToLowerInvariant().Contains("elmah.axd")) 
        { 
         // Check if user can see elmah and handle unauthorised users (return 401/redirect to login page/etc...) 
        } 
    } 
    
    +0

    답변 해 주셔서 감사합니다. ** 세션 **로 사용자를 처리 중이므로 네임 스페이스 ** System.Web.Mvc 및 HttpSessionStateBase **에서 작동하는 방법 ** – imdadhusen

    +0

    asp.net 멤버십을 사용하고 있습니까? –

    +0

    아니요 ** Session [ "UserName"] = "Admin, ** Asp.Net MVC 3.0 – imdadhusen

    관련 문제