コード例 #1
0
ファイル: Global.asax.cs プロジェクト: gennadijbgl/InfoVideo
        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {
            var authCookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];

            if (authCookie != null)
            {
                var ticket = FormsAuthentication.Decrypt(authCookie.Value);

                FormsIdentity formsIdentity = new FormsIdentity(ticket);

                ClaimsIdentity claimsIdentity = new ClaimsIdentity(formsIdentity);



                using (InfoVideoEntities db = new InfoVideoEntities())
                {
                    var user = db.Users.FirstOrDefault(u => u.Login == ticket.Name);

                    if (user == null)
                    {
                        return;
                    }



                    claimsIdentity.AddClaim(
                        new Claim(ClaimTypes.Role, (user.Roles?.Name ?? "User")));
                }

                ClaimsPrincipal claimsPrincipal = new ClaimsPrincipal(claimsIdentity);

                HttpContext.Current.User = claimsPrincipal;
            }
        }