我有一个问题,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的目录,受保护,只允许具有管理员角色的用户。
答案 0 :(得分:1)
这是您的浏览器缓存上一页的问题。当您单击后退按钮时,它只显示已加载的内容,而不是从服务器重新加载。
在大多数情况下,这不是一个大问题,因为一旦他们尝试做某事,他们就会被重定向到登录提示。但是,如果这绝对是一个问题(例如,页面可能包含敏感信息),那么您将需要清除运行时缓存。
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Session.Abandon();
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();