public async Task CheckUser_ForIncorrectPassword_ReturnsError() { // Arrange var request = new CheckUserRequest { Email = "*****@*****.**", Password = "******", }; using var factory = new CustomWebApplicationFactory(); var client = factory.CreateServiceClient <IIdentityServiceClient>(); await SeedUser(client, "*****@*****.**", "Qwerty-Qwerty1"); // Act var response = await client.CheckUserAsync(request); // Assert var expectedError = new IdentityServiceError { ErrorCode = "IncorrectUserNameOrPassword", ErrorDescription = "The user name or password is incorrect.", }; response.UserId.Should().BeEmpty(); response.Errors.Should().BeEquivalentTo(expectedError); }
public Task <CheckUserResponse> CheckUserAsync(CheckUserRequest request) { // var client = new JsonServiceClient(Config.http); var task = client.GetAsync(request); return(task); // }
/// <summary> /// ユーザーの存在チェック /// 存在しない場合はnull /// 存在すればユーザー情報を返す /// </summary> /// <param name="req"></param> /// <returns></returns> public CheckUserResponse CheckUser(CheckUserRequest req) { var target = testData.FirstOrDefault(x => x.LoginId == req.LoginId && x.Password == req.Password); if (target == null) { return(null); } return(new CheckUserResponse(target.Id, target.Name, target.MailAddress)); }
public async Task <CheckUserResponse> CheckUser([FromBody] CheckUserRequest request) { var user = await _userService.GetByEmailAsync(request.Email); if (user == null) { throw new AppErrorException(new AppError(ErrorCode.UserNotFound)); } return(new CheckUserResponse { Email = user.Email }); }
public object Get(CheckUserRequest request) { OrmLiteConfig.DialectProvider = MySqlDialectProvider.Instance; IDbConnection db = _connectstring.OpenDbConnection(); if (request.Number == "" || request.Password == "" || request.School == 0 || request.UserType == "") { throw new ServiceStack.ServiceResponseException("请输入完整参数"); } var user = db.Single <User> (r => r.Number == request.Number && r.SchoolId == request.School); if (user == null) { throw new ServiceResponseException("选择学校不存在此用户"); } if (user.Password != request.Password) { throw new ServiceResponseException("请输入正确的密码"); } if (user.UserType == "学生") { var stu = db.Single <Student> (s => s.StudentId == user.Id); if (stu == null) { throw new ServiceResponseException("不存在此学生"); } if (stu.IsRegistered == false) { throw new ServiceResponseException("你没有注册"); } if (stu.DeviceId != request.DeviceId) { throw new ServiceResponseException("请在你注册的手机登录"); } } // CheckUserResponse ponse = new CheckUserResponse() { UserInfo = user }; return(ponse); }
public async Task CheckUser_ForCorrectCredentialsAfterFourFailedAttempts_CompletesSuccessfully() { // Arrange var correctRequest = new CheckUserRequest { Email = "*****@*****.**", Password = "******", }; using var factory = new CustomWebApplicationFactory(); var client = factory.CreateServiceClient <IIdentityServiceClient>(); await SeedUser(client, "*****@*****.**", "Qwerty-Qwerty1"); async Task CheckUserWithIncorrectPassword() { var incorrectRequest = new CheckUserRequest { Email = "*****@*****.**", Password = "******", }; var failedResponse = await client.CheckUserAsync(incorrectRequest); // Sanity check failedResponse.UserId.Should().BeEmpty(); failedResponse.Errors.Should().NotBeEmpty(); } await CheckUserWithIncorrectPassword(); await CheckUserWithIncorrectPassword(); await CheckUserWithIncorrectPassword(); await CheckUserWithIncorrectPassword(); // Act var response = await client.CheckUserAsync(correctRequest); // Assert response.UserId.Should().NotBeNullOrWhiteSpace(); response.Errors.Should().BeEmpty(); }
public override async Task <CheckUserReply> CheckUser(CheckUserRequest request, ServerCallContext context) { logger.LogInformation("Checking user {UserName} ...", request.Email); var failedCheckReply = new CheckUserReply { UserId = String.Empty, Errors = { new IdentityServiceError { ErrorCode = "IncorrectUserNameOrPassword", ErrorDescription = "The user name or password is incorrect.", }, }, }; var user = await userManager.FindByNameAsync(request.Email); if (user == null) { logger.LogWarning("Check for user {UserName} has failed due to incorrect user name", request.Email); return(failedCheckReply); } var singInResult = await signInManager.CheckPasswordSignInAsync(user, request.Password, lockoutOnFailure : true); if (singInResult.Succeeded) { return(new CheckUserReply { UserId = user.Id, }); } logger.LogWarning("Check for user {UserName} has failed. IsLockedOut: {UserIsLockedOut}, IsNotAllowed: {UserInIsNotAllowed}", request.Email, singInResult.IsLockedOut, singInResult.IsNotAllowed); return(failedCheckReply); }
public async Task CheckUser_ForEmailInDifferentCase_CompletesSuccessfully() { // Arrange var request = new CheckUserRequest { Email = "*****@*****.**", Password = "******", }; using var factory = new CustomWebApplicationFactory(); var client = factory.CreateServiceClient <IIdentityServiceClient>(); await SeedUser(client, "*****@*****.**", "Qwerty-Qwerty1"); // Act var response = await client.CheckUserAsync(request); // Assert response.UserId.Should().NotBeNullOrWhiteSpace(); response.Errors.Should().BeEmpty(); }