Exemplo n.º 1
0
        public ActionResult Register(CustomPrincipalModel principalsModel)
        {
            var permissions = new List <Permission>();

            foreach (var permission in principalsModel.Permissions)
            {
                permissions.Add(new Permission
                {
                    Name = permission
                });
            }

            var user = new User
            {
                Name        = principalsModel.Name,
                Permissions = permissions
            };

            this.userManager.IgnorePermissions = true;
            this.userManager.Insert(user);
            principalsModel.Id = user.Id;

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

            FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
                1,
                user.Name,
                DateTime.Now,
                DateTime.Now.AddMinutes(15),
                false,
                userData);

            string     encTicket = FormsAuthentication.Encrypt(authTicket);
            HttpCookie faCookie  = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);

            this.Response.Cookies.Add(faCookie);

            CustomPrincipal newUser = new CustomPrincipal(authTicket.Name)
            {
                Id          = principalsModel.Id,
                Name        = principalsModel.Name,
                Permissions = principalsModel.Permissions
            };

            System.Web.HttpContext.Current.User = newUser;

            return(this.RedirectToAction("Index", "Employees"));
        }
Exemplo n.º 2
0
        private void SetCurrentUser(HttpCookie authCookie)
        {
            FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);

            JavaScriptSerializer serializer = new JavaScriptSerializer();

            CustomPrincipalModel serializeModel = serializer.Deserialize <CustomPrincipalModel>(authTicket.UserData);

            CustomPrincipal newUser = new CustomPrincipal(authTicket.Name);

            newUser.Id          = serializeModel.Id;
            newUser.Name        = serializeModel.Name;
            newUser.Permissions = serializeModel.Permissions;

            HttpContext.Current.User = newUser;
        }
Exemplo n.º 3
0
        // add custom user data to authentication cookie

        void SetCustomAuthenticationCookie(string email, bool rememberMe)
        {
            var user = ArtContext.Users.ByEmail(email);

            var principalModel = new CustomPrincipalModel();

            principalModel.UserId    = (int)user.Id;
            principalModel.FirstName = user.FirstName;
            principalModel.LastName  = user.LastName;

            var serializer = new JavaScriptSerializer();

            string userData = serializer.Serialize(principalModel);

            var authCookie = FormsAuthentication.GetAuthCookie(email, rememberMe);
            var ticket     = FormsAuthentication.Decrypt(authCookie.Value);
            var newTicket  = new FormsAuthenticationTicket(ticket.Version, ticket.Name, ticket.IssueDate, ticket.Expiration, ticket.IsPersistent, userData);

            authCookie.Value = FormsAuthentication.Encrypt(newTicket);
            Response.Cookies.Add(authCookie);
        }