public RepositoryActionResult <UserLoginResponse> Login(UserLoginRequest user) { try { var userRecord = _users[user.email]; UserLoginResponse userResponse = new UserLoginResponse(); if (userRecord == null) { return(new RepositoryActionResult <UserLoginResponse>(userResponse, RepositoryActionStatus.NotFound)); } if (userRecord.password != user.password) { return(new RepositoryActionResult <UserLoginResponse>(userResponse, RepositoryActionStatus.NotFound)); } string token = CreateJsonWebToken(user.email); _users[user.email].token = token; userResponse.id = userRecord.id; userResponse.email = userRecord.email; userResponse.name = userRecord.name; userResponse.token = token; return(new RepositoryActionResult <UserLoginResponse>(userResponse, RepositoryActionStatus.Updated)); } catch (Exception ex) { return(new RepositoryActionResult <UserLoginResponse>(null, RepositoryActionStatus.Error, ex)); } }
private Mock <IUserRepository> SetupUserRepositoryMock(UserLoginResponse Response) { Mock <IUserRepository> userRepositoryMock = new Mock <IUserRepository>(); userRepositoryMock.Setup(x => x.LoginAsync(It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(Response)); return(userRepositoryMock); }
public string GenerateToken(UserLoginResponse user) { var claims = new[] { new Claim(ClaimTypes.NameIdentifier, user.Data.Id.ToString()), new Claim(ClaimTypes.Name, user.Data.Email), }; var key = new SymmetricSecurityKey( Encoding.UTF8.GetBytes(_configuration.GetSection("AppSettings:Token").Value) ); var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor() { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddHours(int.Parse(_configuration.GetSection("AppSettings:TokenValidHours").Value)), SigningCredentials = credentials }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(tokenHandler.WriteToken(token)); }
public async Task <UserLoginResponse> SignIn(UserSignInRequest request) { LogUtil.Debug("SignIn : " + request.Username + " In time: " + DateTime.UtcNow.ToString()); IAuthenticationManager authentication = HttpContext.Current.GetOwinContext().Authentication; UserLoginResponse response = await Task.Run(() => _userService.UserSignIn(request)); string token = string.Empty; if (response != null && response.ErrorCode == LAMPConstants.API_SUCCESS_CODE) { UserSessionToken tokenObj = _authService.CreateSessionTokenObject(response.UserId, response.Email, response.StudyId); if (tokenObj.ErrorCode == LAMPConstants.API_SUCCESS_CODE) { response.SessionToken = tokenObj.SessionToken; } else { response = new UserLoginResponse { ErrorCode = LAMPConstants.API_SESSION_TOKEN_UPDATION_FAILED, ErrorMessage = ResourceHelper.GetStringResource(LAMPConstants.API_SESSION_TOKEN_UPDATION_FAILED) }; } } LogUtil.Debug("SignIn : " + request.Username + " Out time: " + DateTime.UtcNow.ToString()); return(response); }
public async Task ValidationFail_FailsLogin() { // Arrange AccountLoginModel model = new AccountLoginModel { Email = SOME_EMAIL, Password = SOME_PASSWORD }; UserLoginResponse userRepoResult = new UserLoginResponse { Errors = new List <ValidationError> { new ValidationError { Message = "some error" } } }; // Setup mock Mock <IUserRepository> userRepositoryMock = SetupUserRepositoryMock(userRepoResult); // Act AuthenticateService service = new AuthenticateService(userRepositoryMock.Object); AuthenticateResult results = await service.AuthenticateUser(model); // Assert results.Success.Should().Be(false); }
public async Task <UserLoginResponse> UserLoginForSystemInternalPurpose(UserLoginRequest request) { UserLoginResponse response = null; await Task.Run(() => { var logindata = (from user in context.WebUserLogin where user.PhoneNumber.Equals(request.PhoneNumber) && user.Email.Equals(request.Email, StringComparison.CurrentCultureIgnoreCase) && user.IsDeleted != true select user).FirstOrDefault(); if (logindata != null) { response = new UserLoginResponse(); response.Data = new UserLoginDTO(); response.Data.UserLoginId = logindata.UserLoginId; response.Data.Email = logindata.Email; response.Data.PhoneNumber = logindata.PhoneNumber; // response = mapper.Map<UserLoginDetails, UserLoginResponse>(logindata); } else { throw new Exception(EnumErrorCode.USER_NOTREGISTERED.ToString()); } }); return(response); }
private static async Task ExampleUsingRebusAsync() { _activator = new BuiltinHandlerActivator(); string rabbitMqConnectionString = Configuration.GetConnectionString("RabbitMq"); ConnectToRebus(rabbitMqConnectionString, _activator); // Subscribe to messages we want to handle _bus.Subscribe <UserLoginResponse>().Wait(); _bus.Subscribe <ServiceConfigurationResponse>().Wait(); while (true) { Thread.Sleep(4000); Guid requestId = Guid.NewGuid(); Console.WriteLine($"Sending UserLoginRequest request. Request ID: {requestId}"); UserLoginResponse userLoginResponse = await _bus.SendRequest <UserLoginResponse>(new UserLoginRequest(requestId, InputQueueName, "*****@*****.**", "dsfifigfdg"), RebusConfiguration.Headers, TimeSpan.FromSeconds(10)); Console.WriteLine($"UserLoginResponse received. Request ID: {userLoginResponse.RequestMessageId}, Email: {userLoginResponse.Email}, ResultCode: {userLoginResponse.ResultCode}"); Thread.Sleep(4000); requestId = Guid.NewGuid(); Console.WriteLine($"Sending ServiceConfigurationRequest request. Request ID: {requestId}"); ServiceConfigurationBundle[] serviceConfigurationBundles = new ServiceConfigurationBundle[] { new ServiceConfigurationBundle("MyService", "Bundle1") }; ServiceConfigurationResponse serviceConfigurationResponse = await _bus.SendRequest <ServiceConfigurationResponse>(new ServiceConfigurationRequest(requestId, InputQueueName, serviceConfigurationBundles), RebusConfiguration.Headers, TimeSpan.FromSeconds(10)); Console.WriteLine($"ServiceConfigurationResponse received. Request ID: {serviceConfigurationResponse.RequestMessageId}"); } }
public static PolicyResponseEntity GetPolicy(string username, string password, string caseNo) { PolicyResponseEntity response = new PolicyResponseEntity(); try { UserLoginResponse userLogin = UserClass.AccessCheck(username, password); if (string.IsNullOrEmpty(userLogin.Trace.ErrorMsg)) { response.Policy = Case.Get(caseNo); } else { response.Trace = userLogin.Trace; } } catch (Exception e) { response.Trace.ErrorMsg = e.Message; Common.LogIt(e.ToString()); } return(response); }
public static TraceEntity DiscardIt(string username, string password, string caseNo) { TraceEntity response = new TraceEntity(); try { UserLoginResponse userLogin = UserClass.AccessCheck(username, password); if (string.IsNullOrEmpty(userLogin.Trace.ErrorMsg)) { response = Case.Discard(username, caseNo); } else { response = userLogin.Trace; } } catch (Exception e) { Common.LogIt(e.ToString()); response.ErrorMsg = "未能作废,请稍后重试。"; } return(response); }
public UserLoginResponse Login(UserLoginRequest request) { UserLoginResponse userLoginResponse = new UserLoginResponse(); userLoginResponse.Message = "Incorrect Userid or Password. Please try again."; if (String.IsNullOrEmpty(request.UserNameOREmail) || String.IsNullOrEmpty(request.PasswordHash)) { userLoginResponse.Message = "Please pass all mandatory fields."; return(userLoginResponse); } UserEL userEL = new UserEL(); userEL.Username = request.UserNameOREmail; userEL.Password = request.PasswordHash; UserEL userData = userHelper.LoginUser(userEL); if (userData.Username != null) { userLoginResponse.Message = "User logged in successfully."; userLoginResponse.Token = userData.Token; userLoginResponse.UserID = userData.StoreUserID; userLoginResponse.FullName = userData.StoreName; userLoginResponse.IsLoggedIn = userLoginResponse.IsSuccess = true; userLoginResponse.PushToken = userData.DeviceID; return(userLoginResponse); } else { userLoginResponse.IsLoggedIn = userLoginResponse.IsSuccess = false; return(userLoginResponse); } }
public async Task <UserLoginResponse> Login(UserLoginRequest data) { UserLoginResponse userLoginResponse; var user = await _userEfRepository.GetAsync(data.Email); if (user == null) { userLoginResponse = new UserLoginResponse(); userLoginResponse.Failed(_errorService.GetError(ErrorType.InvalidUsername)); return(userLoginResponse); } if (!_passwordCreator.VerifyPasswordHash(data.Password, user.PasswordHash, user.PasswordSalt)) { userLoginResponse = _userCreator.CreateUserLoggedIn(user); userLoginResponse.Failed(_errorService.GetError(ErrorType.WrongPassword)); return(userLoginResponse); } userLoginResponse = _userCreator.CreateUserLoggedIn(user); userLoginResponse.Succeeded(); return(userLoginResponse); }
public IActionResult Index(UserLoginRequest request) { UserLoginResponse loginResponse = SystemService.UserLogin(request); if (loginResponse.Result == RT.Success) { Result.IsOk = true; Result.Msg = "登录成功!"; var claimIdentity = new ClaimsIdentity("Cookie"); claimIdentity.AddClaim(new Claim(ClaimTypes.Sid, loginResponse.LoginUserInfo.ID.ToString())); claimIdentity.AddClaim(new Claim(ClaimTypes.NameIdentifier, loginResponse.LoginUserInfo.ID.ToString())); claimIdentity.AddClaim(new Claim(ClaimTypes.Name, loginResponse.LoginUserInfo.UserName)); claimIdentity.AddClaim(new Claim(ClaimTypes.Authentication, JsonConvert.SerializeObject(loginResponse.AuthList))); claimIdentity.AddClaim(new Claim(ClaimTypes.UserData, JsonConvert.SerializeObject(loginResponse.LoginUserInfo))); var claimsPrincipal = new ClaimsPrincipal(claimIdentity); // 在上面注册AddAuthentication时,指定了默认的Scheme,在这里便可以不再指定Scheme。 HttpContext.SignInAsync(claimsPrincipal); } else if (loginResponse.Result == RT.User_NotExist_UserName) { Result.IsOk = false; Result.Msg = "用户名不存在!"; } else if (loginResponse.Result == RT.User_Error_Password) { Result.IsOk = false; Result.Msg = "密码不正确!"; } return(Json(Result)); }
public IActionResult Post( [FromBody] UserLoginRequest user, [FromServices] AccessManager accessManager) { if (accessManager.ValidateCredentials(user)) { var token = accessManager.GenerateToken(user).AccessToken; var userInfo = _userService.GetBy(x => x.Email.Equals(user.Email)); var userResponse = UserLoginResponse.Create(user.Email, token, userInfo.Role.Equals(Role.ADMINISTRATOR)); return(Ok(new { success = true, data = userResponse })); } else { return(Ok(new { success = false, message = "The email and / or password entered is invalid.Please try again." })); } }
public virtual JsonResult GetLoggedUser() { var response = new { Success = false, Data = "" }; var aspnetEmail = GetMyAspnetEmail(); if (string.IsNullOrEmpty(aspnetEmail)) { return(Json(response, JsonRequestBehavior.AllowGet)); } var user = UserCore.GetEFByAspNetEmail(aspnetEmail); if (user == null) { return(Json(response, JsonRequestBehavior.AllowGet)); } var userModel = new UserLoginResponse { Id = user.Id, OrganizationId = user.OrganizationId, FirstName = user.FirstName, LastName = user.LastName, FullName = user.FirstName, Email = user.AspNetUser.Email, DisplayName = user.DisplayName, ProfilePictureUrl = user.ProfilePictureUrl, RolesId = AspNetUserCore.SetRolesId(user.AspNetUser.AspNetRoles), }; return(Json(new { Success = true, Data = userModel }, JsonRequestBehavior.AllowGet)); }
public ActionResult UserInsert(UserLogin userLogin) { int UserID = 0; UserLogin _userLogin = HttpContext.Session.Get <UserLogin>("UserLogin"); if (userLogin != null) { UserID = _userLogin.Id; ConsumeWebAPI.UserSuperAdmin userSuperAdminAPI = new ConsumeWebAPI.UserSuperAdmin(); UserLoginResponse userLoginResponse = userSuperAdminAPI.UserInsert(UserID, userLogin); if (userLoginResponse.ResponseCode == ResponseCode.Success) { return(Redirect("/UserSuperAdmin/UsersList")); } else { return(PartialView(UserID)); } } else { return(Redirect("../Home/Index")); } }
public static TraceEntity Logout(LogoutRequestEntity request) { TraceEntity response = new TraceEntity(); try { UserLoginResponse userLogin = UserClass.AccessCheck(request.Username, request.Password); if (string.IsNullOrEmpty(userLogin.Trace.ErrorMsg)) { UserClass.Logout(request); } else { response = userLogin.Trace; } } catch (Exception e) { response.ErrorMsg = e.Message; Common.LogIt(e.ToString()); } return(response); }
/// <summary> /// 用户登录方法 /// </summary> /// <param name="phone"></param> /// <param name="pass"></param> /// <returns></returns> public UserLoginResponse UserInfoLgoin(UserLoginRequest request) { UserLoginResponse response = new UserLoginResponse(); if (string.IsNullOrEmpty(request.UserPhone)) { response.Status = false; response.Message = "手机号不能为空"; return(response); } if (string.IsNullOrEmpty(request.UserPass)) { response.Status = false; response.Message = "密码不能为空"; return(response); } var salt = dal.GetUserInfoSalt(request.UserPhone); var password = MD5Encrypt.MD5Encrypt32(request.UserPass + salt); var res = dal.UserInfoLgoin(request.UserPhone, password); if (!string.IsNullOrEmpty(res.UserPhone)) { response.IsLoginSuccess = true; response.UName = res.UserName; response.UserPhone = res.UserPhone; response.UserId = res.UserId; response.Message = "登录成功"; } else { response.IsLoginSuccess = false; response.Message = "登录失败"; } return(response); }
public static PolicyListResponseEntity GetPolicyListBetween(string username, string password, DateTime dtStart, DateTime dtEnd) { PolicyListResponseEntity response = new PolicyListResponseEntity(); try { UserLoginResponse userLogin = UserClass.AccessCheck(username, password); if (string.IsNullOrEmpty(userLogin.Trace.ErrorMsg)) { response.PolicyList = Case.GetPolicyListBetween(username, dtStart, dtEnd); } else { response.Trace = userLogin.Trace; } } catch (Exception e) { response.Trace.ErrorMsg = e.Message; Common.LogIt(e.ToString()); } return(response); }
public async Task <UserLoginResponse> Register(User user, string password) { var userLoginResponse = new UserLoginResponse(); if (await UserExists(user.Username)) { userLoginResponse.Success = false; return(userLoginResponse); } CreatePasswordHash(password, out byte[] passwordHash, out byte[] passwordSalt); user.PasswordHash = passwordHash; user.PasswordSalt = passwordSalt; await _contactsContext.Users.AddAsync(user); await _contactsContext.SaveChangesAsync(); userLoginResponse.Success = true; userLoginResponse.UserId = user.Id; userLoginResponse.Token = CreateToken(user); return(userLoginResponse); }
public static ProductListResponseEntity GetProductList(string username, string password) { ProductListResponseEntity response = new ProductListResponseEntity(); try { UserLoginResponse userLogin = UserClass.AccessCheck(username, password); if (string.IsNullOrEmpty(userLogin.Trace.ErrorMsg)) { response.ProductList = Product.GetProductList(); } else { response.Trace = userLogin.Trace; } } catch (Exception e) { response.Trace.ErrorMsg = e.Message; Common.LogIt(e.ToString()); } return(response); }
public CustomPrincipal(UserLoginResponse user, params int[] roleTypes) { this.Identity = new GenericIdentity(user.Id); this.UserID = user.Id; this.UserName = user.fullname; this.UserType = "WebUser"; }
public async Task <UserLoginResponse> Login(UserLoginModel model) { if (model.Username == null || model.Password == null) { return(new UserLoginResponse()); } model.Username = model.Username.ToLower(); var userModel = await db.FindByUsername(model.Username.ToLower()); //Invalid username if (userModel == null) { return(new UserLoginResponse()); } //Hash the login password with user salt string hashedPassword = hasher.HashWithSalt(model.Password, userModel.Salt).Hash; //Verify if hashed password and login hashed password match if (hashedPassword != userModel.Password) { return(new UserLoginResponse()); } //Grab dropship account if any var account = await dropship.GetAccount(userModel.Username); var response = new UserLoginResponse() { Token = CreateJWT(model, account) }; return(response); }
// helper methods private string generateJwtToken(UserLoginResponse userLoginResponse) { // generate token that is valid for 1 days var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.UTF8.GetBytes(_appSettings.Secret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim("emailid", userLoginResponse.email), new Claim("firstname", userLoginResponse.first_name), new Claim("lastname", userLoginResponse.last_name), new Claim("countrycode", userLoginResponse.country_code), new Claim("mobile", userLoginResponse.mobile), new Claim("username", userLoginResponse.email.ToString()), new Claim("password", userLoginResponse.password.ToString()), new Claim(ClaimTypes.Name, userLoginResponse.email.ToString()) }), Expires = DateTime.UtcNow.AddDays(1), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); return(tokenHandler.WriteToken(token)); }
/// <summary> /// 获取权限验证token值 /// </summary> /// <returns></returns> public string GetAuthToken(UserLoginResponse response) { var token = ""; if (response.IsLoginSuccess == true) { IJwtAlgorithm algorithm = new HMACSHA256Algorithm(); //HMACSHA256加密 IJsonSerializer serializer = new JsonNetSerializer(); //序列化和反序列 IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder(); //Base64编解码 IDateTimeProvider provider = new UtcDateTimeProvider(); //UTC时间获取 Dictionary <string, object> payload = new Dictionary <string, object>(); payload.Add("iss", response.UserPhone); //iss:发行人 payload.Add("exp", DateTime.Now.AddDays(7).ToUnixTime()); //exp:到期时间 payload.Add("sub", "jwt"); //sub:主题 payload.Add("aud", response.UserPhone); //aud:用户 payload.Add("nbf", DateTime.Now.ToUnixTime()); //nbf:在此之前不可用 payload.Add("iat", DateTime.Now.ToUnixTime()); //iat:发布时间 payload.Add("jti", response.UserId); //jti:JWT ID用于标识该JWT const string secret = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4aKpVo2OHXPwb1R7duLgg"; //服务端 IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder); token = encoder.Encode(payload, secret); } return(token); }
public async Task ValidUser_SucceedsLogin() { // Arrange AccountLoginModel model = new AccountLoginModel { Email = SOME_EMAIL, Password = SOME_PASSWORD }; UserLoginResponse userRepoResult = new UserLoginResponse { UserIsValid = true, UserId = 42 // greater than zero }; // Setup mock Mock <IUserRepository> userRepositoryMock = SetupUserRepositoryMock(userRepoResult); // Act AuthenticateService service = new AuthenticateService(userRepositoryMock.Object); AuthenticateResult results = await service.AuthenticateUser(model); // Assert results.Identity.Should().NotBe(null); string nameClaim = results.Identity.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name)?.Value; nameClaim.Should().Be(model.Email); }
public async Task Execute(CheckUserLoginCommand command) { using (var context = new DevaxiloContext()) { var user = context.Accounts.FirstOrDefault(x => x.Email.Equals(command.Email)); if (user == null) { command.Response = new CommandResponse <UserLoginResponse>(null); return; } var userResponse = new UserLoginResponse { Id = user.Id, Email = command.Email, UserStatus = (SysStatus)user.Status, PasswordHash = user.HashPassword, UserId = user.UUID, FullName = user.FullName, Phone = user.Phone }; command.Response = new CommandResponse <UserLoginResponse>(userResponse); } }
void onRequestFinished(HTTPRequest req, HTTPResponse resp) { Debug.Log("status code: " + resp.StatusCode); Debug.Log("req head: " + req.DumpHeaders()); Debug.Log("req url: " + req.Uri); switch (req.State) { case HTTPRequestStates.Finished: if (resp.IsSuccess) { Debug.Log(resp.DataAsText); Debug.Log("Success"); UserLoginResponse loginResponse = JsonConvert.DeserializeObject <UserLoginResponse>(resp.DataAsText); if (loginResponse.result.code == 0) { Debug.Log("登录成功!"); Debug.Log("result: " + loginResponse.result.code + " | " + loginResponse.result.description); Debug.Log("userid: " + loginResponse.user.userId); Debug.Log("accessToken: " + loginResponse.accessToken); User user = User.CreateInstance("User") as User; user.SetUser(loginResponse.user.userId, loginResponse.user.nickname, loginResponse.user.username, loginResponse.accessToken, loginResponse.refreshToken); user.SaveUser(); } } else { Debug.Log(resp.DataAsText); Debug.Log("Fail"); } break; } }
/// <summary> /// Adds a new user login. /// </summary> /// <param name="loginRequest">The check new user login to try to add.</param> /// <returns>The action result.</returns> public UserLoginResponse UserLogin(UserLoginRequest loginRequest) { UserLoginResponse response = new UserLoginResponse { Name = loginRequest.Name }; // First check that the user exists User userLogin = _userDatabase.LoadedItems.FirstOrDefault(x => x.Name == loginRequest.Name); if (userLogin == null) { response.ErrorCode = (int)UserResponseCode.UnknownUser; response.FailReason = "Could not find this user."; return(response); } // Check the password if (!userLogin.VerifyPassword(loginRequest.Password)) { response.ErrorCode = (int)UserResponseCode.IncorrectPassword; response.FailReason = "Incorrect password please try again."; return(response); } // Correct password so populate the login response response.UserId = userLogin.Id.ToString(); response.Description = userLogin.Description; response.Email = userLogin.Email; return(response); }
public ActionResult ChangePassword(string UserID, string CurrentPassword, string NewPassword) { string sessionId = Session["User-SessionID"].ToString(); UserSession userSession = SessionUtil.GetInstance.VerifySession(sessionId); if (userSession == null) { return(Json(new { ErrorCode = (int)ErrorCode.Redirect, Message = Resources.Resource.msg_sessionTimeOut })); } //Check user FindItemReponse <UserModel> userReponse = _userService.FindUserByID(UserID); if (userReponse.Item == null) { return(Json(new { ErrorCode = (int)ErrorCode.Error, Message = Resources.Resource.msg_invalidUser })); } UserLoginResponse loginresponse = _userService.Login(userReponse.Item.UserName, CurrentPassword); if (loginresponse.ErrorCode != (int)ErrorCode.None) { return(Json(new { ErrorCode = loginresponse.ErrorCode, Message = loginresponse.Message })); } //Update password BaseResponse response = _userService.ChangePassword(UserID, NewPassword); return(Json(response)); }
public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordRequest request) { if (!ModelState.IsValid) { return(BadRequest(UserLoginResponse.Failed(Resource.InvalidPayload))); } var existingUser = await _UserManager.FindByEmailAsync(request.Email); if (existingUser == null) { return(BadRequest(UserLoginResponse.Failed(Resource.InvalidLoginRequest))); } //юзер менеджер сам сверит текущий пароль var result = await _UserManager.ChangePasswordAsync(existingUser, request.CurrentPassword, request.NewPassword); if (!result.Succeeded) { return(BadRequest(new ChangePasswordResponse() { Errors = result.Errors.Select(x => x.Description).ToList(), Success = false })); } return(Ok(new ChangePasswordResponse() { Success = true })); }