我正在开发一个带有安全部分的网站,即名为“PIP”的文件夹。
登录部分工作正常,但当我点击注销时,用户仍然是已知的,如果他/她接触安全部分,则不会被重定向到登录页面。
这是我的 web.config:
<system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH">
</forms>
</authentication>
</system.web>
<location path="PIP">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
我对用户进行身份验证的登录页面:
FormsAuthentication.RedirectFromLoginPage(uid, false);
在安全文件夹(PIP)中的 default.aspx 页面上有一个注销按钮,该按钮背后的代码:
FormsAuthentication.SignOut();
Response.Redirect("~/Default.aspx", true);
在“Default.aspx”页面上有一个指向 ~/PIP/Default.aspx 的链接,它应该被重定向到登录页面,但实际上没有。 看来 session 不受注销的影响。
我尝试了很多选项,手动删除 session 。 Session.Clear、Session.Abandon 但似乎没有任何效果。
我希望你们能给我指明正确的方向!
提前致谢。
最佳答案
您需要在退出后放弃 session 。
FormsAuthentication.SignOut();
Session.Abandon();
Response.Redirect("~/Default.aspx", true);
关于c# - FormsAuthentication.SignOut() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11718980/