c# - FormsAuthentication.SignOut() 不起作用

标签 c# asp.net authentication

我正在开发一个带有安全部分的网站,即名为“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/

相关文章:

c# - 当我们有多个名称相同但属性不同的元素时,如何使用 Xdocument 从 xml 中删除元素

c# - 这可以创建 GTM.js 服务器端逻辑吗?

c# - 将字节数组转换为内存流和位图导致内存使用率高

javascript - 第二次单击浅灰色弹出窗口时,Azure Media Player 不播放视频

html - asp 文本框必填字段验证器消息定位

javascript - 如何查看给定 JS 对象的所有属性?

java - 如何注入(inject)用户名(不是身份验证)?

javascript - AngularJS:在单页​​应用程序中使用身份验证的基本示例

c# - 如何使用 executeReader() 方法仅检索一个单元格的值

javascript - 使用 Ajax 将密码发送到 PHP