我有一个简单的问题 - 如何在 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/