sqlmemebrship提供程序问题

时间:2013-06-24 06:38:09

标签: c# asp.net ext.net sqlmembershipprovider

我有一个问题,sqlmmebership退出。我的项目包含一个主页面,其他页面通过这个主页面内的ajax加载。我放了一个注销按钮主页但是当我点击它时,它没有发生任何事情,点击之后再次指示我登录页面。但是当我点击浏览器上的后退按钮时,它会让我回到主页面,这通常是剂量发生,我错了 这是我的退出功能,

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 个答案:

答案 0 :(得分:1)

这是您的浏览器缓存上一页的问题。当您单击后退按钮时,它只显示已加载的内容,而不是从服务器重新加载。

在大多数情况下,这不是一个大问题,因为一旦他们尝试做某事,他们就会被重定向到登录提示。但是,如果这绝对是一个问题(例如,页面可能包含敏感信息),那么您将需要清除运行时缓存。

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