2009-02-08 6 views
1

web.config의 제한 시간 설정 이외의 다른 추론이 사용되지 않고 있습니까? 기본 제한 시간은 30 분이지만 30 분 미만입니다. ASP.NET 멤버쉽 - 사용자가 예상보다 일찍 종료 됨

 <authentication mode="Forms"> 
     <forms timeout="50000000" loginUrl="content/login.aspx"/> 
    </authentication> 

그리고 내 Login.aspx 페이지 뒤에 코드

:

protected void LoginButton_Click(object sender, EventArgs e) 
{ 
    if (Membership.ValidateUser(UserName.Text, Password.Text)) 
    { 
     FormsAuthentication.RedirectFromLoginPage(UserName.Text, RememberMe.Checked); 
    } 
    else 
    { 
     FailureText.Text = "<br/>Login Failed. Please try again"; 
    } 

} 

[편집]

내가 믿는 제한 시간은 약 게으름의 10 분 발생 ..

+0

나는 비슷한 문제가 있습니다. 내 사이트는 로컬에서 잘 작동하지만 인증 티켓은 약 1 시간 후에 만료됩니다. 이 문제를 파악한 적이 있습니까? – codette

+0

이 정보가 도움이됩니까? http://stackoverflow.com/questions/481416/asp-net-membership-issues-with-registration – juan

답변

2

질문에 표시된 것처럼 web.config 파일에서 ASP.NET 인증 제한 시간을 설정할 수 있지만 코드에서 설정할 수도 있습니다. 명시 적으로 양식 시간 초과 값을 설정하는 C# 코드의 영역이 있습니까? 그렇다면 코드의 설정이 web.config 설정보다 우선합니다.

또 다른 가능성은 코드 생성 폼 인증 쿠키를 사용하는 것입니다. 이것은 일반적으로 같은과 함께 C# 코드에서 다시 수행 다음

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
                  name, 
                  isPersistent, 
                  expirationTime); 

당신의 시간 제한 설정과 특정은 FormsAuthenticationTicket를 만들 경우 Web.config의 설정은 (30)를 나타냅니다 동안 60 분 (예를 들어) 분 이내이면 코드 내에서 설정된 티켓이 web.config 설정보다 우선 적용됩니다.

ASP.NET 세션 및 IIS 세션 시간 제한 값은 양식 인증 시간 초과에 영향을주지 않아야합니다.

물론 폼 인증은 일반적으로 클라이언트 쪽 쿠키를 기반으로하기 때문에 사용자가 쿠키를 지우거나 삭제할 수도 있습니다. 물론 이것은 사용자가 귀하의 웹 사이트로 인증받지 못하게합니다.

weblogs.asp.net 사이트의 Scott Forsyth에서 this post을 찾아 보시기 바랍니다.

+0

예 나는 당신이 나에게 보낸 그 링크를 보았습니다. 왜 내가 자신의 티켓을 생성하지 않는 코드를 게시했는지. – TimLeung

+0

이것은 나에게도 발생합니다. – TimLeung

+0

코드를 통해 수동으로 양식 티켓이나 시간 초과 값을 설정하지 않는다는 내용의 작은 스 니펫에서 완전히 명확하지 않습니다. 그러나, 당신이 그것을하지 않으면, 나는 10 분 후에 타임 아웃을 일으키는 나의 게시물에서 언급 한 것 이외의 다른 이유를 생각할 수 없다. – CraigTP

1

아마 세션 시간 초과와 관련하여 system.web 섹션의 web.config에서 사용자 세션의 시간 초과를 변경할 수 있습니다. add :

<sessionState timeout="x minutes" /> 
관련 문제