2013-06-24 2 views
-1

sqlmmebership 로그 아웃에 문제가 있습니다. 내 프로젝트는 하나의 기본 페이지로 구성되며 다른 페이지는이 기본 페이지의 아약스를 통해로드됩니다. 로그 아웃 버튼 기본 페이지를 클릭하지만 클릭하면 그것은 아무 것도 일어나지 않고 클릭 한 사람이 다시 로그인 페이지로 직접 이동합니다. 브라우저에서 뒤로 버튼을 클릭하면 메인 페이지로 다시 돌아옵니다. 정상적인 복용량이 발생했는데, 잘못되었습니다. 여기에 있습니다. , 내 config 파일이 여기에, 기능 밖으로sqlmemebrship provider issue

protected void Cikis_Click(object sender,DirectEventArgs e) 
    { 
     FormsAuthentication.SignOut(); 
     Roles.DeleteCookie(); 
     Session.Clear(); 
     Session.Abandon(); 
     FormsAuthentication.RedirectToLoginPage(); 

    } 

에 서명하고

<roleManager enabled="true" /> 
     <authentication mode="Forms"> 
     <forms loginUrl="~/Default.aspx" /> 
     </authentication> 
    <membership defaultProvider="MySqlMembershipProvider"> 
     <providers> 
      <clear/> 
      <!--Add a customized SqlMembershipProvider --> 
      <add name="MySqlMembershipProvider" 
      type="System.Web.Security.SqlMembershipProvider" 
      connectionStringName="AProjeConnectionString" 
      enablePasswordRetrieval="false" 
      enablePasswordReset="true" 
      requiresQuestionAndAnswer="false" 

      requiresUniqueEmail="false" 
      passwordFormat="Hashed" 
      maxInvalidPasswordAttempts="15" 
      minRequiredPasswordLength="5" 
      minRequiredNonalphanumericCharacters="0" 
      passwordAttemptWindow="10" 
      passwordStrengthRegularExpression=""/> 
     </providers> 
     </membership> 

나는 Admin이라는 디렉토리를 가지고 있으며, 보호를받으며, 오직 관리 역할을 가진 사용자 만 허용합니다.

답변

1

이것은 이전 페이지를 캐시하는 브라우저의 문제입니다. 뒤로 버튼을 클릭하면 이미로드 된 내용이 표시되고 서버에서 다시로드되지 않습니다.

대부분의 경우 이는 무언가를 시도하자마자 로그인 프롬프트로 리디렉션되기 때문에 큰 문제는 아닙니다. 그러나 이것이 문제가되는 경우 (예 : 페이지에 중요한 정보가 들어있을 수 있음) 런타임 캐시를 지워야합니다.

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1)); 
Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Cache.SetNoStore(); 
Session.Abandon(); 
FormsAuthentication.SignOut(); 
FormsAuthentication.RedirectToLoginPage(); 
+0

여전히 동일한 문제가 있습니다. – sakir

+0

@ user2460637 - 아약스의 로그 아웃 버튼입니까? 또는 귀하의 리디렉션? –

+0

리디렉션 없음 ajax – sakir