global.asax 中是否有任何事件在用户通过身份验证或授权后仅触发一次?每当用户进入应用程序时,无论他是否被授权,会话开始都会触发。
问问题
687 次
2 回答
1
在 global.asax 页面中添加此事件,用于检查当前用户是否登录并将用户详细信息存储在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);
}
}
}
}
于 2013-10-24T07:19:05.357 回答
0
每个AuthenticateRequest
请求都会触发,允许您准备 HttpContext 以执行请求。
于 2013-10-24T07:12:48.313 回答