Ejemplo n.º 1
0
        public bool Authorize(string Roles, string encodedString, int UserId, out string message)
        {
            message = "Authorization has been denied for this request.";
            bool validFlag = true;

            using (var unitOfWork = new UnitOfWork())
            {
                var user = unitOfWork.GetRepository <User>().GetById(UserId);
                if (user == null)
                {
                    return(false);
                }
                if (Roles.Length > 0)
                {
                    validFlag = false;

                    string role = unitOfWork.GetRepository <UserRole>().GetById(user.UserRoleId).Name;
                    if (Roles.Split(',').Any(p => p.Equals(role)))
                    {
                        validFlag = true;
                    }
                }
                if (validFlag)
                {
                    validFlag = JWTEncryptionLib.ValidateToken(encodedString, user, out message);
                }

                return(validFlag);
            }
        }
Ejemplo n.º 2
0
        public Response <LoginResponse> CheckLogin(LoginModel loginModel)
        {
            try
            {
                using (var unitOfWork = new UnitOfWork())
                {
                    var user = unitOfWork.GetRepository <User>().Get(p => p.UserName.Equals(loginModel.UserName, StringComparison.Ordinal));
                    if (user != null)
                    {
                        if (EncryptionLib.EncryptText(loginModel.Password).Equals(user.Password))
                        {
                            if (user.IsDelete)
                            {
                                return(new Response <LoginResponse>(0, "Tài khoản không tồn tại", null));
                            }
                            if (user.IsDisable)
                            {
                                return(new Response <LoginResponse>(0, "Tài khoản của bạn đã bị khóa.", null));
                            }
                            var department = unitOfWork.GetRepository <Department>().Get(s => s.DepartmentId == user.DepartmentId);
                            user.LastLoginOnDate  = DateTime.Now;
                            user.SessionLoginCode = Guid.NewGuid();
                            unitOfWork.GetRepository <User>().Update(user);
                            if (unitOfWork.Save() >= 1)
                            {
                                var response_ = new LoginResponse
                                {
                                    Token = JWTEncryptionLib.GenerateToken(user.UserName, user.SessionLoginCode.ToString(), Convert.ToInt32(ConfigurationManager.AppSettings["TokenExpiry"])),
                                    User  = new SessionModel
                                    {
                                        UserId       = user.UserId,
                                        UserName     = user.UserName,
                                        Department   = department.Name,
                                        DepartmentId = user.DepartmentId,
                                        FullName     = user.FullName,
                                        UserRole     = user.UserRoleId
                                    }
                                };


                                return(new Response <LoginResponse>(1, "", response_));
                            }
                            return(new Response <LoginResponse>(0, "Đã xảy ra lỗi khi đăng nhập. Vui lòng thử lại", null));
                        }
                        return(new Response <LoginResponse>(0, "Mật không không chính xác", null));
                    }
                    return(new Response <LoginResponse>(0, "Tài khoản không tồn tại", null));
                }
            }
            catch (Exception ex)
            {
                return(new Response <LoginResponse>(-1, ex.ToString(), null));
            }
        }
Ejemplo n.º 3
0
 public Response <string> GetToken(string Username, string Password)
 {
     try
     {
         using (var unitOfWork = new UnitOfWork())
         {
             var user = unitOfWork.GetRepository <User>().Get(p => p.UserName.Equals(Username) && p.Password.Equals(Password));
             if (user != null)
             {
                 string token = JWTEncryptionLib.GenerateToken(user.UserName, user.SessionLoginCode.ToString(), 24);
                 return(new Response <string>(1, "", token));
             }
             return(new Response <string>(0, "User doesn't exsist!", null));
         }
     }
     catch (Exception ex)
     {
         return(new Response <string>(-1, ex.ToString(), null));
     }
 }