public async Task <ActionResult> Login(LoginInputDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user == null)
            {
                return(NotFound());
            }

            var isAuthenticated = await _userManager.CheckPasswordAsync(user, model.Password);

            if (!isAuthenticated)
            {
                return(StatusCode(StatusCodes.Status401Unauthorized));
            }

            var refreshToken = _tokenFactory.GenerateToken();

            user.RefreshToken = refreshToken;

            await _userManager.UpdateAsync(user);

            var response = new LoginOutputDto(
                await _jwtFactory.GenerateEncodedToken(user.Id, user.UserName),
                refreshToken,
                true);

            return(Ok(response));
        }
예제 #2
0
        public bool Login(LoginInputDto input)
        {
            var result = _enterpriseRepository.Single(x =>
                                                      x.LoginName.Equals(input.LoginName) && x.Password.Equals(input.Password));

            return(result != null);
        }
        public async Task <string> LoginAsync(LoginInputDto inputDto)
        {
            inputDto.Password = inputDto.Password.GetMd5();

            var user = await _dbContext.User
                       .Where(u => !u.IsDeleted)
                       .Where(u => u.IsAction)
                       .Where(u => u.LoginName == inputDto.LoginName.Trim())
                       .Where(u => u.Password == inputDto.Password.Trim())
                       .FirstOrDefaultAsync();

            if (user == null)
            {
                throw new StringResponseException("用户名或密码错误!");
            }

            var claims = new[]
            {
                new Claim("Id", user.Id.ToString()),
                new Claim("Name", user.LoginName)
            };
            var key         = new SymmetricSecurityKey(Encoding.Unicode.GetBytes(_jwtOption.SigningKey));
            var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
            var jwtToken    = new JwtSecurityToken(_jwtOption.Issuer, _jwtOption.Audience, claims,
                                                   expires: DateTime.Now.AddMinutes(30), signingCredentials: credentials);

            var token = new JwtSecurityTokenHandler().WriteToken(jwtToken);

            return(token);
        }
예제 #4
0
        public async Task <(OperationResponse item, Claim[] cliams)> Login(LoginInputDto input)
        {
            input.NotNull(nameof(input));
            var user = await _userManager.FindByNameAsync(input.UserName);

            if (user == null)
            {
                return(new OperationResponse(ResultMessage.UserNameNotFind, OperationEnumType.Error), new Claim[] { });
            }
            var result = await _userManager.CheckPasswordAsync(user, input.Password);

            if (!result)
            {
                return(new OperationResponse(ResultMessage.PassWordNotCheck, OperationEnumType.Error), new Claim[] { });
            }
            var jwtToken = _jwtBearerService.CreateToken(user.Id, user.UserName);

            return(new OperationResponse(ResultMessage.LoginSusscess, new
            {
                AccessToken = jwtToken.AccessToken,
                NickName = user.NickName,
                UserId = user.Id.ToString(),
                AccessExpires = jwtToken.AccessExpires
            }, OperationEnumType.Error), new Claim[] { });
        }
예제 #5
0
        public LoginResultDto Login(LoginInputDto input)
        {
            var user = GetUser(input.userName);

            if (user == null)
            {
                throw new Exception("Invalid username");
            }

            var checkPassword = _passwordHasher.VerifyHashedPassword(user, user.password, input.password);

            if (checkPassword != PasswordVerificationResult.Success)
            {
                throw new Exception("Invalid Password");
            }

            var tokenStr = GenerateJSONWebToken(user);

            return(new LoginResultDto
            {
                UserId = user.Id,
                userName = user.userName,
                email = user.email,
                phoneNumber = user.phoneNumber,
                RoleId = user.RoleId,
                token = tokenStr
            });
        }
예제 #6
0
        public async Task <string> JwtLogin(LoginInputDto loginInputDto)
        {
            LinUser user = await _userRepository.GetUserAsync(r => r.Username == loginInputDto.Username);

            if (user == null)
            {
                throw new LinCmsException("用户不存在", ErrorCode.NotFound);
            }

            bool valid = await _userIdentityService.VerifyUserPasswordAsync(user.Id, loginInputDto.Password);

            if (!valid)
            {
                throw new LinCmsException("请输入正确密码", ErrorCode.ParameterError);
            }

            await _userRepository.UpdateLastLoginTimeAsync(user.Id);

            List <Claim> claims = new List <Claim>()
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                new Claim(ClaimTypes.Email, user.Email ?? ""),
                new Claim(ClaimTypes.GivenName, user.Nickname ?? ""),
                new Claim(ClaimTypes.Name, user.Username ?? ""),
            };
            string token = _jsonWebTokenService.Encode(claims);

            return(token);
        }
예제 #7
0
        public IActionResult Login(LoginInputDto input)
        {
            if (!CheckPwd(input))
            {
                return(Json(new ResultDto()
                {
                    Message = "invalid username or password"
                }));
            }
            var token = JwtHelper.GenerateJwtToken(options.Secret, new Dictionary <string, string>
            {
                { "username", input.UserName },
                { "logintime", DateTime.Now.ToString() }
            });

            ResponseCookie.Add(new HttpCookie
            {
                Name  = "authorization",
                Value = token
            });
            return(Json(new ResultDto()
            {
                Success = true
            }));
        }
예제 #8
0
        public async Task <LoginOutputDto> PostAsync(LoginInputDto input)
        {
            var result = await _signInManager.PasswordSignInAsync(input.Name, input.Password, false, true);

            if (!result.Succeeded)
            {
                throw new BusinessException("Login Faild");
            }

            var user = await _userManager.FindByNameAsync(input.Name);

            if (user != null)
            {
                if (user == null)
                {
                    throw new BusinessException("Login Faild");
                }
                var roles = await _userManager.GetRolesAsync(user);

                if (roles == null || roles.Count == 0)
                {
                    throw new BusinessException("Login Faild");
                }
                var token          = GenerateJwt(user, roles.ToList());
                var loginOutputDto = ObjectMapper.Map <IdentityUser, LoginOutputDto>(user);
                loginOutputDto.Token      = token;
                loginOutputDto.Expiration = DateTime.Now.AddHours(_jwtOptions.ExpirationTime);
                return(loginOutputDto);
            }
            throw new BusinessException("Login Faild");
        }
예제 #9
0
        public async Task <StatusResult <string> > UserLogin(LoginInputDto dto)
        {
            var result = await _accountService.LoginAsync(dto);

            #region 添加登录日志

            #endregion
            if (!result.IsSuccess)
            {
                return(new StatusResult <string>(result.Message));
            }

            // 生成 token
            var accessToken = JWTEncryption.Encrypt(new Dictionary <string, object>()
            {
                { ClaimConst.USERID, result.Data.Id },         // 存储Id
                { ClaimConst.USERNAME, result.Data.UserName }, // 存储用户名
                { ClaimConst.USERNICKNAME, result.Data.NickName },
                { ClaimConst.QINGSHANUSERISSUPER, result.Data.IsSuper },
            });
            return(new StatusResult <string>()
            {
                Data = "Bearer " + accessToken
            });
        }
예제 #10
0
        public async Task <JObject> Login(LoginInputDto loginInputDto)
        {
            _logger.LogInformation("login");

            string authority = $"{_configuration["Identity:Protocol"]}://{_configuration["Identity:IP"]}:{_configuration["Identity:Port"]}";

            HttpClient client = new HttpClient();

            TokenResponse response = await client.RequestTokenAsync(new TokenRequest
            {
                Address   = authority + "/connect/token",
                GrantType = GrantType.ResourceOwnerPassword,

                ClientId     = _configuration["Service:ClientId"],
                ClientSecret = _configuration["Service:ClientSecrets"],

                Parameters =
                {
                    { "UserName", loginInputDto.Username },
                    { "Password", loginInputDto.Password }
                }
            });

            if (response.IsError)
            {
                throw new LinCmsException(response.ErrorDescription);
            }
            return(response.Json);
        }
예제 #11
0
        public ActionResult <string> Get(LoginInputDto loginInputDto)
        {
            if (ModelState.IsValid)
            {
                if (loginInputDto.UserName == "lihonghui" && loginInputDto.Password == "123")
                {
                    var claims = new Claim[]
                    {
                        new Claim(ClaimTypes.Name, "lihonghui"),
                        new Claim(ClaimTypes.Role, "admin")
                    };

                    var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_jwtSettings.SecretKey));

                    var credit = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
                    var token  = new JwtSecurityToken(_jwtSettings.Issuer, _jwtSettings.Audience, claims, null,
                                                      DateTime.UtcNow.AddMinutes(30), credit);
                    return(Ok(new
                    {
                        Token = new JwtSecurityTokenHandler().WriteToken(token)
                    }));
                }
            }

            return(BadRequest());
        }
예제 #12
0
        public ActionResult Login(Models.Home.UIModel_Login model)
        {
            EcdrpSite ecdrpSite = EcdrpSite.Admin;
            LoginEnum result    = LoginEnum.Empty;
            bool      IsValid   = false;

            IBLL.IBase_UserManager u = new BLL.Base_UserManager();
            if (!string.IsNullOrEmpty(model.CheckCode) && model.CheckCode.Equals(Session["ValidateCode"] ?? ""))
            {
                IsValid = true;
            }
            if (IsValid)
            {
                LoginInputDto input = new LoginInputDto();                  //参数实体
                input.UserName = model.accountName;                         //用户名
                input.UserPwd  = model.password;                            //密码

                input.IP      = HttpRequestHelper.GetIP(this.Request);      //登录IP地址
                input.Browser = HttpRequestHelper.GetBrowser(this.Request); //浏览器版本号
                result        = u.Login(input, out ecdrpSite);
                //验证测试系统是否存在自动上传
                //var obj = new ZiXin.ERP.PublicModels.PublicData().CheckAutoUpload();
                //if (obj.Tag == -1)
                //{//测试系统中存在自动上传功能
                //    result = -9;
                //}
            }
            else
            {
                result = LoginEnum.CheckCodeErr;  //验证码错误,返回9
            }

            return(Json(new { result = result, site = ecdrpSite.ToString(), par = System.Web.HttpUtility.UrlEncode(model.accountName) }));
        }
예제 #13
0
파일: SysUserApp.cs 프로젝트: Cally1/Luccy
        /// <summary>
        /// 根据名称和密码获取用户信息
        /// </summary>
        /// <param name="name"></param>
        /// <param name="pwd"></param>
        /// <returns></returns>
        public UserDto CheckLogin(LoginInputDto inputDto)
        {
            SysUserEntity entity = _sysUserRepository.GetAll().Where(b => b.UserName.Equals(inputDto.Name) && b.Password.Equals(inputDto.Pwd)).FirstOrDefault();
            UserDto       dto    = AutoMapper.Mapper.Map <UserDto>(entity);

            return(dto);
        }
예제 #14
0
        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <StatusResult <AuthLoginOutputDto> > LoginAsync(LoginInputDto dto)
        {
            var user = await _userRepository
                       .Select
                       .Where(o => o.UserName == dto.Account).FirstAsync();

            if (user == null)
            {
                return(new StatusResult <AuthLoginOutputDto>("账号或密码错误"));
            }

            if (user.Status != EAdministratorStatus.Normal)
            {
                return(new StatusResult <AuthLoginOutputDto>($"当前账号状态为:{user.Status.ToDescription()}"));
            }

            //前端小写加密 再用32位大写加密
            if (user.Password != MySecurity.MD5(dto.Password))
            {
                return(new StatusResult <AuthLoginOutputDto>("账号或密码错误"));
            }

            var model = new AuthLoginOutputDto()
            {
                Id       = user.Id,
                NickName = user.NickName,
                UserName = user.UserName,
                IsSuper  = user.IsSuper
            };

            return(new StatusResult <AuthLoginOutputDto>(model));
        }
        public ActionResult Login(LoginInputDto vm)
        {
            if (vm != null && !string.IsNullOrEmpty(vm.Account) &&
                !string.IsNullOrEmpty(vm.Password) && !string.IsNullOrEmpty(vm.Random))
            {
                var userinfo = userService.Login(vm);
                if (userinfo != null)
                {
                    this.UserSession = new UserSessionDto()
                    {
                        UserId    = userinfo.Id,
                        Account   = userinfo.Account,
                        Name      = userinfo.Name,
                        RoleId    = userinfo.RoleId,
                        LoginTime = DateTime.Now
                    };

                    return(Success(true));
                }

                return(Failure());
            }

            return(Error());
        }
예제 #16
0
        public async Task <LoginOutputDto> Login(LoginInputDto loginInputDto)
        {
            var user = _defaultDbContext.MbpUsers.Where(u => u.LoginName == loginInputDto.LoginName).FirstOrDefault();

            if (user != null)
            {
                if (user.Password != ApplicationHelper.EncryptPwdMd5(loginInputDto.Password))
                {
                    return(new LoginOutputDto()
                    {
                        AccessToken = new Jwt(), IsPassPwdCheck = false
                    });
                }

                // 如果是管理员权限就给管理员属性,如果是用户就给用户属性,这里只定义两种角色,一种是超管,一种是普通用户,这里的角色只做身份鉴定,不做鉴权用,方便区分超管类的API和普通用户的API
                // 安全级别较高的API需要超管的可以单独限定,其他按照全局授权策略来进行
                // token会默认添加用户名和登录名,现在根据需要,在这里扩展更多的扩展信息,加入角色名称,用户Id
                var token = await _jwtBearerService.CreateJwt(loginInputDto.LoginName, loginInputDto.ClientID, new List <Claim>()
                {
                    new Claim(ClaimTypes.Role, user.IsAdmin?"admin":"user"), // 角色名称,这里的ClaimTypes.Role,可以用来约束基于角色的权限验证
                    new Claim(ClaimTypes.Sid, user.Id.ToString())            // 登录名
                });

                return(new LoginOutputDto()
                {
                    AccessToken = token, Menus = new List <string>(), UserName = user.UserName, Role = user.IsAdmin ? "admin" : "user", IsPassPwdCheck = true
                });
            }

            return(new LoginOutputDto()
            {
                AccessToken = new Jwt(), IsPassPwdCheck = false
            });
        }
예제 #17
0
        public async Task <OperatorModel> CheckLoginAsync(LoginInputDto loginInput)
        {
            if (Md5.md5(loginInput.validCode, 16) != WebHelper.GetSession("ProjectManage_session_verifycode"))
            {
                throw new ProgramLogicException((new { message = "验证码不正确", errorCode = LoginResultType.loginFail }).ToJson());
            }

            var param = new List <SqlParameter>()
            {
                new SqlParameter("@AccountNo", loginInput.cardNo),
                new SqlParameter("@AccountType", loginInput.accountType)
            };
            var loginEntity = (await commonRepository.FindListAsync <LoginOutputDto>("EXEC SP_Ly_Check_Login @AccountNo,@AccountType", param));

            if (loginEntity == null || loginEntity.Count <= 0)
            {
                throw new ProgramLogicException((new { message = "该账号不存在,请重新输入", errorCode = LoginResultType.loginNotExist }).ToJson());
            }
            if (!loginEntity[0].isEnabled)
            {
                throw new ProgramLogicException((new { message = "该账号被锁住,请联系管理员", errorCode = LoginResultType.loginLocking }).ToJson());
            }

            string pwd = DESEncrypt.Encrypt(loginInput.cardPwd);

            if (!loginEntity[0].accountPwd.Equals(pwd.ToUpper()))
            {
                throw new ProgramLogicException((new { message = "密码输入错误,请重新输入", errorCode = LoginResultType.loginFail }).ToJson());
            }

            return(loginEntity[0].ToModel <OperatorModel>());
        }
예제 #18
0
        /// <summary>
        /// 多福-销售注册
        /// </summary>
        /// <param name="dto"></param>
        /// <param name="workUser"></param>
        /// <returns></returns>
        public async Task <ReturnValueModel> Login(LoginInputDto dto, WorkUser workUser)
        {
            ReturnValueModel rvm = new ReturnValueModel
            {
                Success = true,
                Msg     = "",
                Result  = null
            };

            if (string.IsNullOrEmpty(workUser?.WxUser?.Id))
            {
                rvm.Success = false;
                rvm.Msg     = "Invalid WxUser";
                rvm.Result  = null;
                return(rvm);
            }
            //匹配AD白名单
            var whiteName = _rep.FirstOrDefault <BotADWhiteName>(s => s.IsDeleted != 1 && s.ADAccount == dto.UserName);

            if (whiteName == null)
            {
                rvm.Success = false;
                rvm.Msg     = "您输入的账号无权限访问或账号密码不正确。";
                rvm.Result  = null;
                LoggerHelper.WriteLogInfo("[CheckWhiteName]:错误------不在白名单");
                return(rvm);
            }
            var verify = await GetVerifyApi(dto.UserName, dto?.Password);

            if (verify.Success == false)
            {
                return(verify);
            }

            var user = _rep.FirstOrDefault <WxUserModel>(s => s.IsDeleted != 1 && s.Id == workUser.WxUser.Id);

            if (user == null)
            {
                rvm.Success = false;
                rvm.Msg     = "获取用户信息失败!";
                rvm.Result  = null;
                return(rvm);
            }
            user.UserName           = dto.UserName;
            user.IsSalesPerson      = 2;//设置为内部员工
            user.IsVerify           = 1;
            user.IsCompleteRegister = 1;
            _rep.Update(user);

            _rep.Insert(new DocTag
            {
                Id         = Guid.NewGuid().ToString(),
                CreateTime = DateTime.UtcNow.AddHours(8),
                TagId      = "3a8670c8-29e9-482a-bb54-53766b6babdb",//此处  固定内部员工标签 TagInfo id=9481d4a8-a259-474b-b912-2a61c9069a1d
            });
            _rep.SaveChanges();

            return(rvm);
        }
예제 #19
0
 public HttpResponseMessage Login(HttpRequestMessage request, LoginInputDto loginDto)
 {
     return(CreateHttpResponse(request, () =>
     {
         MembershipContext loginResult = this._accountAppService.Login(loginDto);
         return request.CreateResponse(HttpStatusCode.OK, new { success = loginResult.IsAuthenticated });
     }));
 }
예제 #20
0
        public async Task <AjaxResult> LoginAsync([FromBody] LoginInputDto loginDto)
        {
            var result = await _identityContract.Login(loginDto);

            var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme);//用户标识

            identity.AddClaims(result.cliams);
            return(result.item.ToAjaxResult());
        }
예제 #21
0
        public async Task <TokenOutputDto> CreateToken(LoginInputDto model)
        {
            var tokenModel = new TokenOutputDto()
            {
                HasVerifiedEmail = false
            };
            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user == null)
            {
                tokenModel.Errors = new string[] { "Not Found User" };
                return(tokenModel);
            }


            //if (!_environment.IsDevelopment())
            //{
            //    if (!user.EmailConfirmed)
            //    {
            //        tokenModel.Errors = new string[] { "No Email Confirmed" };
            //        return tokenModel;
            //    }

            //    if (user.LockoutEnabled)
            //    {
            //        tokenModel.Errors = new string[] { "This account has been locked." };
            //        return tokenModel;
            //    }
            //}


            if (await _userManager.CheckPasswordAsync(user, model.Password))
            {
                tokenModel.HasVerifiedEmail = true;
                tokenModel.UserId           = user.Id;
                tokenModel.UserName         = user.UserName;
                var roles = await _userManager.GetRolesAsync(user);

                tokenModel.Roles = roles.ToList();
                JwtSecurityToken jwtSecurityToken = await CreateJwtToken(user);

                tokenModel.Token        = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken);
                tokenModel.RefreshToken = await _userManager.GetAuthenticationTokenAsync(user, "BBC", "RefreshToken");

                if (String.IsNullOrEmpty(tokenModel.RefreshToken))
                {
                    tokenModel.RefreshToken = await _userManager.GenerateUserTokenAsync(user, "BBC", "RefreshToken");

                    await _userManager.SetAuthenticationTokenAsync(user, "BBC", "RefreshToken", tokenModel.RefreshToken);
                }

                return(tokenModel);
            }
            tokenModel.Errors = new string[] { "Invalid login attempt." };
            return(tokenModel);
        }
예제 #22
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> Login(LoginInputDto loginInputDto)
        {
            var result = await _accountQueryService.Login(loginInputDto.AccountName, loginInputDto.AccountName);

            if (result.LoginType == LoginType.NotLoggedSuccessfully)
            {
                return(Json(result));
            }
            return(View());
        }
예제 #23
0
        public async Task Shuold_Login_Success()
        {
            var loginInfo = new LoginInputDto()
            {
                Name = "*****@*****.**", Password = "******"
            };
            var result = await _loginAppService.PostAsync(loginInfo);

            result.Code.ShouldBe((int)DTOs.Public.ApiCodeEnum.成功);
        }
예제 #24
0
        public async Task <IActionResult> Post([FromBody] LoginInputDto input)
        {
            //if (!ModelState.IsValid)
            //{
            //  return Ok()
            //}
            var result = await _userService.GetAsync(input.UserName, input.Password);

            return(Ok(result));
        }
예제 #25
0
        public async Task <ActionResult> Authenticate(LoginInputDto inputDto)
        {
            var response = await _authService.Login(inputDto);

            return(new ContentResult
            {
                ContentType = "application/json",
                Content = JsonSerializer.Serialize(response),
                StatusCode = (int)(response.Success ? HttpStatusCode.OK : HttpStatusCode.InternalServerError)
            });
        }
        public async Task <IActionResult> Index()
        {
            var login = new LoginInputDto
            {
                Email    = "*****@*****.**",
                Password = "******"
            };

            var result = await _authenticationService.Login(login);

            if (result.Success)
            {
                var claims = new List <Claim>
                {
                    new Claim(ClaimTypes.Name, login.Email),
                };

                var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

                var authProperties = new AuthenticationProperties
                {
                    //AllowRefresh = <bool>,
                    // Refreshing the authentication session should be allowed.

                    ExpiresUtc = DateTimeOffset.UtcNow.AddDays(10),
                    // The time at which the authentication ticket expires. A
                    // value set here overrides the ExpireTimeSpan option of
                    // CookieAuthenticationOptions set with AddCookie.

                    IsPersistent = true,
                    // Whether the authentication session is persisted across
                    // multiple requests. When used with cookies, controls
                    // whether the cookie's lifetime is absolute (matching the
                    // lifetime of the authentication ticket) or session-based.

                    //IssuedUtc = <DateTimeOffset>,
                    // The time at which the authentication ticket was issued.

                    //RedirectUri = <string>
                    // The full path or absolute URI to be used as an http
                    // redirect response value.
                };

                HttpContext.Session.SetString("access_token", result.AccessToken.Token);
                HttpContext.Session.SetString("refresh_token", result.RefreshToken);

                await HttpContext.SignInAsync(
                    CookieAuthenticationDefaults.AuthenticationScheme,
                    new ClaimsPrincipal(claimsIdentity),
                    authProperties);
            }

            return(RedirectToAction("Index", "Home"));
        }
예제 #27
0
        public async Task <IActionResult> Login([FromBody] LoginInputDto model)
        {
            var result = await _authService.CreateToken(model);

            if (result.Errors != null)
            {
                return(BadRequest(result.Errors));
            }

            return(Ok(result));
        }
예제 #28
0
        public async Task <IActionResult> GetToken([FromBody] LoginInputDto loginUser)
        {
            var user = await dbContext.Users
                       .Include(u => u.Role)
                       .FirstOrDefaultAsync(u => u.Code == loginUser.UserCode && u.PassWord == Encrypt.Md5Encrypt(loginUser.PassWord));

            if (user == null)
            {
                return(NotFound(Json(new { Error = "用户名或密码错误!" })));
            }
            return(Json(new { Token = CreatToken(user) }));
        }
예제 #29
0
 public JsonResult Login(LoginInputDto input, string returnUrl)
 {
     using (ResponseResult <AdminUserLoginInfo> result = new ResponseResult <AdminUserLoginInfo>())
     {
         input.Password = Server.HtmlDecode(input.Password);
         var adminUser = this.authProvider.Authenticate(input);
         //消除敏感数据
         adminUser.User.Password = string.Empty;
         result.Entity           = adminUser;
         return(new JsonResultEx(result));
     }
 }
예제 #30
0
        public ICurrentUser Login(LoginInputDto input)
        {
            ValidationObject.Validate(string.IsNullOrWhiteSpace(input.LoginName), "登录名不能为空");
            ValidationObject.Validate(string.IsNullOrWhiteSpace(input.Password), "密码不能为空");
            var userDto = _userRepository.QueryableAsNoTracking.SingleOrDefault(t => t.LoginName == input.LoginName);

            ValidationObject.Validate(userDto == null, "登录名不存在");
            ValidationObject.Validate(userDto.PasswordHash != input.Password, "密码不正确");

            var currentUser = Get(userDto.Id);

            return(currentUser);
        }