2012-08-23 3 views
0

안녕하세요 자신이 관리되지 않거나 시스템이 볼 수 관리 모듈에 가면 내가 기술 역할 기반 사용자 리디렉션?

  • 이 내 시스템 관리자의 역할과했다

    1. 웹 앱 관리자 모듈 설정에 문제가
    2. 사용자가 아닌 경우 관리자 페이지

      죄송합니다 그를 리디렉션됩니다, 당신은 t이 페이지에 액세스 할 돈!

    나는

    <?xml version="1.0"?> 
    <configuration> 
        <system.web> 
         <authorization> 
         <allow roles="admin" /> 
         <deny users="*"/> 
         </authorization> 
        </system.web> 
    </configuration> 
    

    도 내가 로그인 한 사용자는 관리자 또는 다른

    protected void Page_Load(object sender, EventArgs e) 
        { 
         if (HttpContext.Current.User.Identity.IsAuthenticated) 
         { 
          if (Page.User.IsInRole("admin")) 
          { 
           if (!Page.IsPostBack) 
           { 
            DisplayRolesInGrid(); 
           } 
          } 
          if(!Page.User.IsInRole("admin")) 
          { 
           Response.Redirect("/accessPage.aspx"); 
          } 
    
         } 
        } 
    
  • +1

    질문이 있으십니까? – aquinas

    +0

    Seconded - 여기에 무슨 질문이 있습니까? 예상되는 행동은 무엇이며 대신 무엇을보고 있습니까? – JcFx

    +0

    먼저 케이스를 확인하십시오. 나는 "admin"또는 "Admin"을 의미합니다. 케이스에 문제가없는 경우. 그런 다음 일부 관리 모듈 전문가가 도움을 줄 수 있습니다. if (HttpContext.Current.User.Identity.IsAuthenticated) 또는 – Sami

    답변

    1

    두 가지 유형의 역할 관리를 서로 혼동하지 마십시오. 그들은 web.config에서 하나씩 서로에 대해 배제됩니다. 다른 하나는 C#을 통해 코드에 있습니다. 이미 수행 한 것처럼 web.config 액세스 부분을 제거하고 Page_Load 함수의 코드를 사용하기 만하면됩니다.

    protected void Page_Load(object sender, EventArgs e) 
    { 
    
         if (Page.User.IsInRole("admin")) 
         { 
          // all is good, do not do anything 
          // if you want to initialized something, do it here 
         } 
         else 
         { 
          // opps you do not have access here, take him somewhere else 
          Response.Redirect("/accessPage.aspx"); 
         } 
    
    
    } 
    
    +0

    이 아닌 경우에 확인 했습니까? web.config보다 코드 모델을 선호하는 것이 더 나은 방법입니까? 즉, config 모델이 더 단순하고 전체 디렉토리를 단일 구성 라인으로 커버 할 수있는 모든 페이지에 유사한 코드를 추가해야합니다. – JcFx

    +0

    예, 액세스가 필요한 모든 페이지에이 코드를 추가해야합니다. 그것은 디자인에 달려 있습니다. Web.conf 부분은 더욱 강력하고 복잡합니다. 코드는 간단하고 작동합니다 :) –

    +0

    나는 를 제거하면 web.config가 작동 할 것이라고 생각합니다. 그러나 각자 자기 자신에게 : 당신은 양쪽 모두를 사용하지 않는 것이 옳습니다 : 실제로 아무것도 망가 트리지 만 도움이되지 않습니다. – JcFx

    0
    가 있는지 확인하는 C# 코드가 서브 디렉토리 관리자에 대한 액세스를 제한하여 Web.config를 사용

    질문이 무엇인지 모르겠지만 적어도 하나 이상의 문제가 있습니다. <deny users="*"/>은 모두를 거부한다는 의미입니다. 인증되지 않은 상태를 유지하려면 <deny users="?" />이어야하며 <deny roles="Tech" />은 기술 사용자가 허용되지 않아야합니다.