我正在使用表单身份验证(以及内置的登录控件),并允许用户在登录时单击“记住我”复选框。当他们返回到站点时,他们会按预期自动登录。当发生这种情况时,我能抓住一个事件吗?我一直在研究FormsAuthenticationModule.Authenticate事件,但我不确定这是正确的方法。
答案 0 :(得分:7)
查看Global.asax中的Application_AuthenticateRequest事件。
http://msdn.microsoft.com/en-us/library/system.web.httpapplication.aspx
在用户通过身份验证后(通过手动登录或使用cookie),此事件将触发。从那里,你可以做你需要的。您可以询问Page.User对象以获取有关登录用户的信息
http://msdn.microsoft.com/en-us/library/system.web.ui.page.user.aspx
答案 1 :(得分:2)
您可以查看global.asax中的Session_Start,看看您是否可以检测用户是否经过身份验证,如果是,请从那里设置变量。您可能需要从HttpContext.Current.Session引用该会话(与User类似)。您可能还想查看为OnAuthenticate注册事件处理程序并在那里检查/设置变量的HttpHandler。
答案 2 :(得分:0)
首先,看一下使用2.0+中可用的Login控件(我记得)。您可以在该控件上处理Authenticate事件,您可以在此处设置会话变量。
此外,我们假设在进行身份验证后,用户将被带到某个“主页”页面。因此,您可以在“主页”页面的Load事件处理程序中设置会话变量。