2013-06-24 59 views
-1

我有一个问题,sqlmmebership注销。我的项目包含一个主页面,并且其他页面通过ajax加载到此主页面内。我将一个注销按钮的主页面,但当我点击它,它什么也没有发生,点击之后再次指引我登录页面。但是当我点击浏览器上的后退按钮时,它将我变回主页面,这通常会发生,我错了 这里是我的注销功能,sqlmemebrship提供程序问题

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 - 你的登出按钮还有Ajax吗?或者你的重定向? –

+0

重定向没有ajax – sakir

相关问题