gpt4 book ai didi

c# - 停止网站在到期时重复使用 session ID

转载 作者:行者123 更新时间:2023-11-30 19:49:32 26 4
gpt4 key购买 nike

我希望能够在用户结束他们在我们的应用程序上的 session 时进行记录,并记录它是注销还是 session 过期。我正在使用

cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));

在注销时设置一个新的 sessionId,但是当 session 过期时,如果浏览器实例没有关闭,sessionId 将被重用。在我的 web.config 中,我使用了

        <sessionState mode="InProc" timeout="1" cookieName="session" regenerateExpiredSessionId="true" />

但仍然可以重用 session 。

我无法在 Session_end() 中杀死 cookie,因为我没有访问权限,因为没有 HttpContext 或请求,所以我不能那样重置它。

有人知道如何从 Global.asax.cs 文件中强制生成新的 sessionId 吗?

谢谢

戴夫

编辑 - 这目前在我们的开发环境中,但我们的生产应用程序使用状态服务器进行 session 。不确定这是否会对 sessionId 分配产生影响(我知道我需要使用自定义 IHttpModule 而不是 Session_end)

最佳答案

根据有关 RegenerateExpiredSessionId 属性的文档:

By default, only cookieless URLs are reissued when RegenerateExpiredSessionId is enabled

所以,除非你使用的是无 cookie session ,否则你就不走运了

您要用这些需要新 session ID 的 session ID 做什么?将它们存储在数据库或某个地方以供以后查找?如果是这样,也许您应该考虑使用您可以控制的其他类型的 ID(例如 sql server 上的标识列)。

顺便说一句 - 您真的希望您的 session 在一分钟内超时,还是只是为了测试?

关于c# - 停止网站在到期时重复使用 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3833250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com