繁体   English   中英

用户通过身份验证后会触发事件吗?

[英]Is there an event which fires after user is authenticated?

用户经过身份验证或授权后,global.asax中是否有仅触发一次的事件? 无论用户是否获得授权,只要进入应用程序,会话启动都会触发。

将此事件添加到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);
            }
        }
    }
} 

AuthenticateRequest在每个请求上触发,使您可以准备HttpContext来执行请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM