当用户通过身份验证时会引发AuthenticateRequest事件,但是在这种情况下,您还没有访问 SessionState 的权限。因此,要保存Session
您应该考虑PostAcquireRequestState
应用程序事件。
IIS 7.0 的 ASP.NET 应用程序生命周期概述
IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期概述
有关其他信息:
例子:
在 global.asax
void Application_PostAcquireRequestState(object sender, EventArgs e)
{
if (Context.Session != null)
{
Application.Lock();
Session["user"] = User.Identity.Name;
Application.UnLock();
}
}
此外,如果您使用LoginControl
,您可以处理该LoggedIn
事件:
ASPX
<asp:Login runat="server" ID="login" DestinationPageUrl="~/Default.aspx"
FailureAction="RedirectToLoginPage"
onloggedin="login_LoggedIn" ...>
....
ASPX 代码背后
protected void login_LoggedIn(object sender, EventArgs e)
{
// set the Session here
}