2
global.asax中是否有任何事件在用戶通過身份驗證或授權後纔會觸發一次?無論用戶是否被授權,只要用戶進入應用程序,會話就會啓動。用戶通過身份驗證後是否有事件觸發?
global.asax中是否有任何事件在用戶通過身份驗證或授權後纔會觸發一次?無論用戶是否被授權,只要用戶進入應用程序,會話就會啓動。用戶通過身份驗證後是否有事件觸發?
在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);
}
}
}
}
AuthenticateRequest
會觸發每個請求,允許您爲執行請求準備HttpContext。