2009-11-30 2 views
1

을 형성하고 난 단지 관리자 사용자가 액세스 할 수 있도록하려면 내 관리자 경로에서Asp.net 내가이가 내 Web.config의에서 인증

  1. 을하지만, 나는 이것을 할 길을 찾을 수 없다. 관리자 사용자 만 액세스 할 수있게하려면 어떻게해야합니까?

  2. 쿠키를 사용하려고해도 사용자는 항상 로그 아웃되므로 로그 아웃하면 안됩니다.

    FormsAuthentication.RedirectFromLoginPage(user, CheckBoxPersistCookie.Checked); 
    

가 어떻게 사용자가 로그인 유지 할 수 있습니다 : 사용자가 유효 할 때 내 login.aspx에서 나는 folloing 코드가?

답변

1

<allow> 줄을 <deny> 줄에 넣어보세요.

<system.web> 
    <authentication mode="Forms"> 
       <forms loginUrl="Login.aspx" protection="All" path="/" timeout="30"/> 
    </authentication> 
    <sessionState timeout="20" /> 
</system.web> 

<location path="admin"> 
    <system.web> 
     <authorization> 
      <allow users="admin"/> 
      <deny users="*"/> 
     </authorization> 
    </system.web> 
</location> 
+0

아, 그게 쉽지 만 처음에는 모든 것을 거부하고 이후에 관리자를 추가하여이 내용을 덮어 쓰는 것이 더 논리 일 것이라고 생각했습니다. :-) – Martin

+0

ASP.NET에서 권한 부여 규칙은 우선 순위에 따라 배치됩니다. – richeym

+0

그래, 나 한테 잠시 바보짓을 했어. .NET은 deny *를보고 다음 줄에 도달하기 전에 모든 사람들을 공격합니다. –

0

인증 쿠키에는 30 분, 세션 쿠키에는 20 분이 걸립니다. 세션이 20 분 후에 만료되므로 인증 쿠키를 사용할 수 없게됩니다.
사용자가 로그인 한 상태로 남겨두기를 원하신다면 조금 까다 롭습니다. 자바 스크립트와 보이지 않는 iframe을 사용하여 구현할 수 있음을 알고 있습니다. 예를 들어 iframe을 5 분마다 다시로드해야합니다. 귀하의 세션은 라이브 및 로컬 쿠키가 업데이트됩니다.

+0

하지만 사용자가 다음 번에 웹 사이트를 열어 로그인하기를 원한다면? 오늘 로그인 한 다음 로그 아웃하지 않고 닫습니다. 그런 다음 그가 같은 컴퓨터에서 웹 사이트를 열면 나는 여전히 그를 로그인하고 싶습니다. 그래서 쿠키를 사용하려했는데 어떻게 구현합니까? – Martin

+0

흠,이 경우에는 자동 로그인 코드를 구현해야합니다. 하지만 얼마나 안전한지 궁금합니다. – Danil

+0

쿠키가 안전하지 않다는 말입니다. 쿠키에 해시를 저장 한 다음 클라이언트 코드가 인증 쿠키가 존재하고 사용자가 로그인되지 않은 것을 감지하면이 해시를 사용하여 자동 로그인을 시도 할 수 있습니다. – Danil