global.asax中是否有任何事件在用户通过身份验证或授权后才会被触发一次?无论用户是否获得授权,只要用户进入应用程序,会话就会启动。
答案 0 :(得分:1)
在global.asax页面中添加此事件,以便检查当前用户是否为logedin并将用户详细信息存储在httpconext.current.user
中。
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
if (HttpContext.Current.User != null)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.User.Identity is FormsIdentity)
{
FormsIdentity id =
(FormsIdentity)HttpContext.Current.User.Identity;
FormsAuthenticationTicket ticket = id.Ticket;
// Get the stored user-data, in this case, our roles
string userData = ticket.UserData;
string[] roles = userData.Split(',');
HttpContext.Current.User = new GenericPrincipal(id, roles);
}
}
}
}
答案 1 :(得分:0)
每个请求都会触发AuthenticateRequest
,允许您准备HttpContext以执行请求。