-1

我有一个问题,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 的目录,并且受保护,只允许具有管理员角色的用户。

4

1 回答 1

1

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

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

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));  
Response.Cache.SetCacheability(HttpCacheability.NoCache);  
Response.Cache.SetNoStore();  
Session.Abandon();
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
于 2013-06-24T06:48:54.240 回答