Example #1
0
        protected void LogIn(object sender, EventArgs e)
        {
            if (IsValid)
            {
                // Validate the user password
                var manager       = Context.GetOwinContext().GetUserManager <ApplicationUserManager>();
                var signinManager = Context.GetOwinContext().GetUserManager <ApplicationSignInManager>();



                // This doen't count login failures towards account lockout
                // To enable password failures to trigger lockout, change to shouldLockout: true
                var result = signinManager.PasswordSignIn(txtemail.Text, txtpwd.Text, chkRemberme.Checked, shouldLockout: false);

                switch (result)
                {
                case SignInStatus.Success:
                    var user = signinManager.UserManager.FindByEmail(txtemail.Text);
                    SaveSession(user);
                    HttpCookie formAuthCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
                    if (formAuthCookie != null)
                    {
                        //Decrypt the cookie value.
                        FormsAuthenticationTicket formAuthTicket = FormsAuthentication.Decrypt(formAuthCookie.Value);
                        JavaScriptSerializer      objSerializer  = new JavaScriptSerializer();
                        //Deserialize the cookie value
                        CustomPrincipalSerializer serializeModel = objSerializer.Deserialize <CustomPrincipalSerializer>(formAuthTicket.UserData);
                        MyCustomPrincipal         newUser        = new MyCustomPrincipal(formAuthTicket.Name);
                        newUser.Id       = serializeModel.Id;
                        newUser.UserName = serializeModel.UserName;
                        newUser.IsAdmin  = serializeModel.IsAdmin;
                        newUser.GetRoles = serializeModel.GetRoles;
                        //Save details in the httpcontext
                        HttpContext.Current.User = newUser;
                    }
                    RedirectPostLogin();


                    //  IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
                    break;

                case SignInStatus.LockedOut:
                    Response.Redirect("/Account/Lockout");
                    break;

                case SignInStatus.RequiresVerification:
                    Response.Redirect(String.Format("/Account/TwoFactorAuthenticationSignIn?ReturnUrl={0}&RememberMe={1}",
                                                    Request.QueryString["ReturnUrl"],
                                                    chkRemberme.Checked),
                                      true);
                    break;

                case SignInStatus.Failure:
                default:
                    ltrlLogin.Text    = "Invalid login attempt";
                    ltrlLogin.Visible = true;
                    break;
                }
            }
        }
Example #2
0
        private void SaveSession(ApplicationUser user)
        {
            CustomPrincipalSerializer objSerializer = new CustomPrincipalSerializer();
            var signinManager = Context.GetOwinContext().GetUserManager <ApplicationSignInManager>();
            var rolemanager   = Context.GetOwinContext().GetUserManager <ApplicationUserManager>();


            bool IsAdmin = rolemanager.IsInRole(user.Id, Munchki.Web.Code.Utils.PrefixHelper.ROLENAME_ADMIN);
            var  roles   = rolemanager.GetRoles(user.Id);

            objSerializer.Id       = user.Id;
            objSerializer.UserName = user.UserName;
            objSerializer.IsAdmin  = IsAdmin == true ? 1 : 0;
            objSerializer.GetRoles = roles.ToList();
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            string userData = serializer.Serialize(objSerializer);
            FormsAuthenticationTicket formAuthTicket = null;

            formAuthTicket = new FormsAuthenticationTicket(1, user.Email, DateTime.Now, DateTime.Now.AddMinutes(15), false, userData);
            string     encformAuthTicket = FormsAuthentication.Encrypt(formAuthTicket);
            HttpCookie formAuthCookie    = new HttpCookie(FormsAuthentication.FormsCookieName, encformAuthTicket);

            System.Web.HttpContext.Current.Response.Cookies.Add(formAuthCookie);
        }