2009-10-01 3 views
1

은 아직도 무언가에 대한 FormsAuthenticationTicket과 실제 쿠키 컨테이너에 대해 조금 혼란 스러워요.FormsAuthenticationTicket에서 설정할 수있는 항목은 무엇입니까?

  1. FormsAuthenticationTicket()DateExpiration은 무엇을 참조 하는가? 쿠키가 죽을 때인가요? 사용자가 활성 액션 (예 : 시간 초과)없이 로그인 한 상태를 유지할 수있는 기간입니까?

  2. <forms loginUrl="~/Account/LogOn" 
         protection="All" 
         timeout="20160" 
         name="test" 
         path="/" 
         requireSSL="false" 
         slidingExpiration="false" 
         defaultUrl="default.aspx" 
         cookieless="UseDeviceProfile" 
         enableCrossAppRedirects="false" /> 
    

    이것은 내 웹 구성에있는 내용입니다. 자, 이것들 중 어느 것이 자동으로 쿠키에 설정 되나요? 예를 들어, 나는 내 쿠키를 만들 때 잡아 필요가 무엇 name 필드에서 잡을 수 있습니까?

    HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); 
    

    그러나 timeout, slidingExpiration, enableCrossAppRedirects, cookieless 등 (즉 무엇이든) protection 설정에 대한

    ? 이 속성을 설정할 속성이 표시되지 않습니다. 그들은 자동으로 webconfig 또는 무엇에서 가져온거야?

  3. FormsAuthTicket에 설정된 DateExpiration과 쿠키 (authCookie.Expires)에 대해 설정 한 것의 차이점은 무엇입니까?

감사

답변

3
  1. FormsAuthenticationTicket.Expiration는 티켓이 만료되는 시간입니다. 티켓 만료 날짜/시간은 암호화 된 티켓에 저장되므로 쿠키 만료 시간과는 무관합니다. 클라이언트는 쿠키 만료 시간을보고 변경할 수는 있지만 암호화 된 티켓을 무단 변경할 수는 없습니다.

그것은 사용자가 재 인증없이 사이트에 액세스 할 수 있습니다 시간을 제어합니다.

  1. 티켓을 작성하는 데 web.config의 값이 사용됩니다. 또한 원하는 값으로 암호화 된 티켓을 만들고 쿠키에 저장할 수 있습니다. 이 예제는 FormsAuthenticationTicket 클래스에 대한 MSDN 설명서에 나와 있습니다.

UPDATE

This MSDN article이 주제에 대한 정보를 가지고있다. web.config에서 보호가 모두로 설정된 경우 티켓은 machineKey 요소에 지정된 알고리즘을 사용하여 암호화됩니다. 기본값은 this article에 따라 SHA1 및 AES입니다.

당신은 당신이 일반적으로 생산 응용 프로그램에서이 작업을 수행 할 수없는 것이지만, 당신이 당신의 Web.config에 보호 = "없음"을 설정할 수 있습니다 암호화되지 않은 표를 참조하십시오.

또한 Lutz Reflector와 같은 도구를 사용하여 FormsAuthentication 및 FormsAuthenticationTicket 클래스의 소스를 검사하여 티켓 생성 방법에 대해 자세히 이해할 수 있습니다. 당신이 티켓의 유효 기간보다 짧은 쿠키 만료 날짜를 설정하면

+0

그래서 어떤 일이 일어날까요? 그래서 대부분의 Web.config의 값을 사용합니까? – chobo2

+0

나는 또한 encrytpion이 formsAuthentication을 위해 Encrypt 메소드를 어떻게 사용하는지 궁금해하며 원하는 경우 어디에서 chagned 할 수 있습니까? 또한 암호화하지 않고 formAuthetnication 쿠키를 어떻게 추가 할 수 있습니까? 내가 encyrpted되지 않은 경우 어떻게 보일지보고 싶어하지만 티켓에 문자열을 변환하는 방법을 알아낼 수 없어 쿠키에 추가 할 수 있습니다. – chobo2

관련 문제