コード例 #1
0
ファイル: Global.asax.cs プロジェクト: innovateedu2/NGL
        protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
        {
            HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];

            if (authCookie != null)
            {
                FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
                JavaScriptSerializer      serializer = new JavaScriptSerializer();
                if (authTicket.UserData == "OAuth")
                {
                    return;
                }
                NglPrincipalSerializedModel serializeModel = serializer.Deserialize <NglPrincipalSerializedModel>(authTicket.UserData);
                NglPrincipal newUser = new NglPrincipal(authTicket.Name);
                newUser.Resources        = serializeModel.Resources;
                HttpContext.Current.User = newUser;
            }
        }
コード例 #2
0
ファイル: AccountController.cs プロジェクト: innovateedu2/NGL
        public void CreateAuthenticationTicket(ApplicationUser user)
        {
            var roleId = user.Roles.First().RoleId;
            var role   = _roleManager.FindById(roleId).Name.DehumanizeTo <ApplicationRole>();

            var serializeModel = new NglPrincipalSerializedModel {
                Resources = _resourceService.GetResourcesFor(role)
            };

            var serializer = new JavaScriptSerializer();
            var userData   = serializer.Serialize(serializeModel);

            var authTicket = new FormsAuthenticationTicket(1, user.UserName, DateTime.Now, DateTime.Now.AddHours(8), false, userData);
            var encTicket  = FormsAuthentication.Encrypt(authTicket);
            var faCookie   = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);

            Response.Cookies.Add(faCookie);
        }