Beispiel #1
0
        public ActionResult Login(UserLoginViewModel user)
        {
            if (!ModelState.IsValid)
            {
                return(View(user));
            }

            if (ModelState.IsValid)
            {
                //1. check user as status?
                var checkUser = UserRepository.CheckUserName(user.UserName);
                if (checkUser != null)
                {
                    if (checkUser.IsLocked)
                    {
                        ModelState.AddModelError("Locked", Resources.Messages.Account_Login_Locked);
                        return(View(user));
                    }

                    var userLogin = UserRepository.Login(user.UserName, user.Password);
                    if (userLogin != null)
                    {
                        //Get all role of current user login
                        var userRoleInfo = UserRoleRepository.GetRolesByUserId(userLogin.Id);

                        var roles = GetRolesOfUser(userRoleInfo, userLogin);

                        var identities = new ClaimsIdentity(new[]
                        {
                            new Claim(ClaimTypes.NameIdentifier, userLogin.Id.ToString()),
                            new Claim(ClaimTypes.Name, userLogin.UserName),
                            new Claim(ClaimTypes.Surname, userLogin.HoVaTen)
                        }.Concat(roles), "ApplicationCookie", ClaimTypes.Name, ClaimTypes.Role);

                        AuthenticationManager.SignIn(identities);

                        return(Redirect(GetRedirectUrl(user.ReturnUrl)));
                    }
                    ModelState.AddModelError("", Resources.Messages.Account_Login_Incorrect);
                    return(View(user));
                }
                ModelState.AddModelError("", Resources.Messages.Account_Login_Incorrect);
                return(View(user));
            }
            return(View());
        }
Beispiel #2
0
 public IQueryable <UserRole> GetRolesByUserId(int userId)
 {
     return(_userRoleRepository.GetRolesByUserId(userId));
 }