c# - 在 Session_OnEnd 中获取用户

标签 c# asp.net-mvc asp.net-mvc-4

我有一个简单的问题 - 如何在 Global.asax 的 Session_OnEnd() 中获取当前经过身份验证的用户?

我想做的是:

    public void Session_OnEnd()
    {
        string user = User.Identity.Name;
    }

但我收到异常“用户在此上下文中不可用。”。 否则我如何获取当前用户? 当他们登录时,我应该将名称存储在 session 变量中吗?这不是多余吗?

最佳答案

session (大部分)在服务器闲置一段时间后结束。因此,此时没有请求,因此没有可用的用户身份(因为没有用于识别用户的身份验证 token )。

所以你是对的,如果你需要在会​​话结束时知道用户的名字,它需要是 Session 中的一个值。它可能看起来有点多余,但如果这是您需要的,它将是您唯一的选择。

关于c# - 在 Session_OnEnd 中获取用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21684843/

相关文章:

c# - 为什么不应该在订阅同一组件的事件处理程序中对 .NET 组件进行方法调用?

asp.net - 访问所有 View 的 Viewbag 属性

c# - 如何使用相同的 MVC Controller 方法处理数组或单个对象?

c# - 查看模型将空属性发回 Controller

c# - Linq to SQL、InsertOnSubmit 与 InsertAllOnSubmit 性能对比?

c# - 如何使设计器可以使用复合组件?

c# - 如何获取一个月中的工作日列表?

c# - 使用 MVC 6 显示从 ASP.NET 5 中的 WebRequest 获取的 JSON 数据

c# - ReSharper "Cannot resolve symbol"即使在项目构建时

javascript - 当选项卡在 mvc bootstrap tab-content 中处于事件状态时动态加载内容