gpt4 book ai didi

asp.net-mvc - session 结束时访问成员(member)用户

转载 作者:行者123 更新时间:2023-12-02 20:09:22 24 4
gpt4 key购买 nike

我目前正在尝试编写一些代码,以便在用户放弃 session (通过超时或注销)后进行一些整理,但希望访问 User 对象,以便我知道该 session 属于谁到。

不幸的是 HttpContext 为空,所以我无法直接访问 HttpContext.User 或 HttpContext.User.IsInRole 甚至身份验证 cookie。我理解这背后的原因,但想知道当 session 超时时是否有其他方法可以访问此信息?

除了复制 session 中的一些信息的明显答案之外。

谢谢。

最佳答案

您可以使用Global.asaxSession_End事件。当 session 过期时,会自动调用 Session_End 事件。

问题是在没有当前请求的情况下调用 Session_End 事件。结果,Session_End 中的 HttpContext.Current 为 null。

如果您想获取用户信息,则需要在用户成功登录后立即将其保存在 Session 中。

private void Session_End(object sender, EventArgs e)
{
// Code that runs when a session ends.
// Note: The Session_End event is raised only when the sessionstate mode
// is set to InProc in the Web.config file. If session mode is set
// to StateServer or SQLServer, the event is not raised.

var userName = Session["UserName"];
var sessionId = Session.SessionID;
}

enter image description here

关于asp.net-mvc - session 结束时访问成员(member)用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20107196/

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