用户使用Http Module登录时,在会话变量中保存用户名

时间:2010-08-20 17:54:50

标签: asp.net httpmodule

是否可以使用应用程序事件将用户名保存在会话变量中?我想做这样的事情:

        private void ContextOnBeginRequest(object sender, EventArgs eventArgs){
        if (_context.Request.IsAuthenticated)
            _context.Session["ID"] = _context.User.Identity.Name;
    }

但是在上面的代码中,我收到一条错误,说会话状态不可用。

2 个答案:

答案 0 :(得分:1)

如果你想采用这种方法,你应该检查httpcontext.current.session,但当然首先要确保它不是null。此外,您还需要检查Request IsAuthenticated以确保有用户,因为您可以拥有未经过身份验证的会话。

答案 1 :(得分:0)

ContextOnBeginRequest是您的BeginRequest事件处理程序。如果这个事件

触发SessionState尚未创建。

s. HttpApplication Class -> Remarks