public void TestAdminLogin() { // Arrange var request = new AdminLoginRequest("bar"); var expectedResponse = new Response <TxSessionCredentials>(CREDENTIALS); var mockClient = new Mock <IAdminClient>(); mockClient.Setup(client => client.Login(request)) .Returns(expectedResponse.WithSuccess()); // Act var adminController = new AdminController( requestFieldExtractor, mockClient.Object); var result = adminController.AdminLogin(request) as OkObjectResult; var response = result.Value as Response <TxSessionCredentials>; // Assert Assert.NotNull(response); Assert.True(response.IsSuccessStatusCode); Assert.True(response.Payload.IsAdmin); Assert.Equal(expectedResponse.Payload, response.Payload); }
public AjaxResult Index(AdminLoginRequest request) { AdminLoginResponse loginResponse = _systemService.AdminLogin(request); if (loginResponse.Result == RT.Success) { Result.IsOk = true; Result.Msg = "登录成功!"; var claimIdentity = new ClaimsIdentity("Cookie"); claimIdentity.AddClaim(new Claim(ClaimTypes.Authentication, JsonConvert.SerializeObject(loginResponse.AuthList))); claimIdentity.AddClaim(new Claim(ClaimTypes.UserData, JsonConvert.SerializeObject(loginResponse.AdminInfo))); var claimsPrincipal = new ClaimsPrincipal(claimIdentity); // 在上面注册AddAuthentication时,指定了默认的Scheme,在这里便可以不再指定Scheme。 HttpContext.SignInAsync(claimsPrincipal); } else if (loginResponse.Result == RT.Admin_NotExist_UserName) { Result.IsOk = false; Result.Msg = "管理员名不存在!"; } else if (loginResponse.Result == RT.Admin_Error_Password) { Result.IsOk = false; Result.Msg = "密码不正确!"; } return(Result); }
/// <summary> /// 管理员登录 /// </summary> /// <param name="request"></param> /// <param name="info"></param> /// <returns></returns> public AdminLoginResponse AdminLogin(AdminLoginRequest request) { AdminLoginResponse response = new AdminLoginResponse(); AdminInfo info = GetModel <AdminInfo>(new { request.AdminName }); if (info == null) { response.Result = RT.Admin_NotExist_UserName; return(response); } if (request.Password != RSADEncrypt.Decrypt(info.Password)) { response.Result = RT.Admin_Error_Password; return(response); } //权限 if (info.IsSuper) { response.AuthList = GetList <AuthInfo>(); } else { response.AuthList = GetAdminAuth(info.ID); } //登录成功 response.Result = RT.Success; response.AdminInfo = info; return(response); }
/// <summary> /// Verify Admin Login Details /// </summary> /// <param name="loginDetails">Admin Login Details</param> /// <returns>If data verified, return response data else ull or exception</returns> public async Task <RegistrationResponse> AdminLogin(AdminLoginRequest loginDetails) { try { RegistrationResponse responseData = null; loginDetails.Password = EncodeDecode.EncodePasswordToBase64(loginDetails.Password); SQLConnection(); using (SqlCommand cmd = new SqlCommand("ValidateLogin", conn)) { cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@Email", loginDetails.Email); cmd.Parameters.AddWithValue("@Password", loginDetails.Password); cmd.Parameters.AddWithValue("@UserRole", _admin); conn.Open(); SqlDataReader dataReader = await cmd.ExecuteReaderAsync(); responseData = AdminRegistrationResponseModel(dataReader); }; return(responseData); } catch (Exception ex) { throw new Exception(ex.Message); } }
/// <summary> /// 登录 /// </summary> /// <param name="request">请求</param> public async Task <SignInWithTokenResult> SignInAsync(AdminLoginRequest request) { var user = await GetUserAsync(request.UserName); if (user == null) { return new SignInWithTokenResult { Message = "用户名不存在", State = SignInState.Failed } } ; await AddClaimsToUserAsync(user, ApplicationCode.Admin); var result = await SignInManager.SignInAsync(user, request.Password); user.AddLoginLog(Web.IP, Web.Browser); await MessageEventBus.PublishAsync(new UserLoginMessageEvent(new UserLoginMessage { UserId = user.Id, Name = user.Nickname, Ip = Web.IP, UserAgent = Web.Browser }, false)); await UnitOfWork.CommitAsync(); return(await GetLoginResultAsync(user, result, ApplicationCode.Admin)); }
public async Task <BaseResponse> AdmainLogin(AdminLoginRequest request) { var adminInfo = await _bus.SendQuery <GetAdmainByEmail, Administrator> (new GetAdmainByEmail(request.Email)); if (adminInfo == null || !string.Equals(request.Password.GetMd5Hash(), adminInfo.Password)) { return(new BaseResponse(System.Net.HttpStatusCode.NotFound, "用户名或密码不正确")); } return(BaseResponse.Success()); }
public IActionResult AdminLogin([FromBody, Required] AdminLoginRequest request) { Response <TxSessionCredentials> response = adminService.Login(request); RequestPreconditions.CheckNotNull(response.Payload, "Payload"); response.Payload.Validate(); response.Payload.SetAdmin(true); requestFieldExtractor.StoreTomUserSessionCredentials(response.Payload); return(Ok(response)); }
public async Task <IActionResult> SignInAsync([FromBody] AdminLoginRequest request) { var result = await SecurityService.SignInAsync(request); if (result.State == SignInState.Succeeded) { return(Success(result.Token)); } return(Fail(result.Message)); }
public Response <TxSessionCredentials> Login(AdminLoginRequest request) { var response = client.PostAsync(ADMIN_LOGIN, RequestSerializer.Content(request)).Result; if (response.IsSuccessStatusCode) { var userResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <Response <TxSessionCredentials> >(response.Content.ReadAsStringAsync().Result); return(userResponse); } return(new Response <TxSessionCredentials>(response.RequestMessage.ToString(), (int)response.StatusCode)); }
public async Task <IActionResult> Login([FromBody] AdminLoginRequest request) { var password = config?.AdministratorPassword ?? string.Empty; var username = request?.Username ?? string.Empty; if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password) || !password.Equals(request?.Password, StringComparison.OrdinalIgnoreCase)) { return(BadRequest()); } await SignIn(username); return(Ok()); }
public async Task TestAdminLogin_WrongPostBodyCredentials() { // Arrange var request = new AdminLoginRequest("bar"); // Act var client = _testHostFixture.Client; var response = await client.PostAsync("/api/admin/login", RequestSerializer.Content(request)); // Assert response .StatusCode .Should() .Be(HttpStatusCode.BadRequest); }
public async Task <IActionResult> Login(AdminLoginRequest adminLoginRequest) { try { var loginResult = await _authenticationBL.HandleAdminLoginRequest(adminLoginRequest); return(Ok(loginResult)); } catch (Exception exception) { const string message = "There was an error during login."; _logger.LogError(exception, message); return(StatusCode(500, message)); } }
public async Task TestAdminLogin() { // Arrange var request = new AdminLoginRequest("ToTheMoon2018"); // Act var client = _testHostFixture.Client; var response = await client.PostAsync("/api/admin/login", RequestSerializer.Content(request)); // Assert response .StatusCode .Should() .Be(HttpStatusCode.OK); }
public async Task <IActionResult> Login(AdminLoginRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } ServiceResult <bool> result = await _adminService.LoginAsync(request); if (result.IsError) { ModelState.AddModelError("", "Invalid admin email or password"); return(View("Login")); } return(RedirectToRoute("Home-Index")); }
public async Task <AdminRegistrationResponse> AdminLogin(AdminLoginRequest loginDetails) { try { if (loginDetails == null) { return(null); } else { return(await _adminRepository.AdminLogin(loginDetails)); } } catch (Exception ex) { throw new Exception(ex.Message); } }
/// <summary> /// 登录 /// </summary> /// <param name="request">请求</param> public async Task <SignInWithTokenResult> SignInAsync(AdminLoginRequest request) { var user = await GetUserAsync(request.UserName); if (user == null) { return new SignInWithTokenResult { Message = "用户名不存在", State = SignInState.Failed } } ; await AddClaimsToUserAsync(user, ApplicationCode.Admin); var result = await SignInManager.SignInAsync(user, request.Password); await UnitOfWork.CommitAsync(); return(await GetLoginResultAsync(user, result, ApplicationCode.Admin)); }
public void TestAdminLogin_WrongPostBody() { // Arrange var request = new AdminLoginRequest(); var expectedResponse = new Response <TxSessionCredentials>(); var mockClient = new Mock <IAdminClient>(); mockClient.Setup(client => client.Login(request)) .Returns(expectedResponse); // Act var adminController = new AdminController( requestFieldExtractor, mockClient.Object); Action act = () => adminController.AdminLogin(request); // Assert Assert.Throws <InvalidRequestException>(act); }
public async Task <IActionResult> LoginAsync(AdminLoginRequest request) { var loginResult = await _adminAppService.AdmainLogin(request); if (loginResult.StatusCode != System.Net.HttpStatusCode.OK) { return(Ok(loginResult)); } var claim = new List <Claim>() { new Claim(type: "Role", value: "Admin") }; var identityUser = new IdentityServerUser(request.Email) { DisplayName = request.Email.Split("@")[0], AdditionalClaims = claim }; await HttpContext.SignInAsync(identityUser); return(Ok(DataResponse <string> .Success(HttpContext.Request.Cookies[_returnUrlKey]))); }
public IActionResult Login(AdminLoginRequest request) { //string validSession = HttpContext.Session.Get<string>("valid") ?? string.Empty; //将验证码从Session中取出来,用于登录验证比较 //if (string.IsNullOrEmpty(validSession) || !valid.Trim().Equals(validSession, StringComparison.InvariantCultureIgnoreCase)) //{ // return No("验证码错误"); //} //HttpContext.Session.Remove("valid"); //验证成功就销毁验证码Session,非常重要 if (string.IsNullOrEmpty(request.user_name.Trim()) || string.IsNullOrEmpty(request.password.Trim())) { return(No("用户名或密码不能为空")); } var adminDto = StoreUserService.Login(request.user_name, request.password).Mapper <AdminDto>(); if (adminDto != null) { HttpContext.Session.Set(SessionKey.AdminInfo, adminDto); if (request.remember.Trim().Contains(new[] { "on", "true" })) //是否记住登录 { Response.Cookies.Append("admin_username", HttpUtility.UrlEncode(request.user_name.Trim()), new CookieOptions() { Expires = DateTime.Now.AddDays(7) }); Response.Cookies.Append("admin_password", request.password.Trim().DesEncrypt(AppConfig.BaiduAK), new CookieOptions() { Expires = DateTime.Now.AddDays(7) }); } //HangfireHelper.CreateJob(typeof(IHangfireBackJob), nameof(HangfireBackJob.LoginRecord), "default", adminDto, HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(), LoginType.Default); string refer = Request.Cookies["refer"]; //初始化系统设置参数 CommonHelper.SystemSettings = SettingService.LoadEntities(l => l.wxapp_id == adminDto.wxapp_id).ToList().ToDictionary(s => s.key, s => JObject.Parse(s.values)); return(YesRedirect("登陆成功!", string.IsNullOrEmpty(refer) ? "/" : refer)); } return(No("用户名或密码错误")); }
/// <summary> /// 管理员登录 /// </summary> /// <param name="userlogin"></param> /// <returns></returns> public AdminLoginResponse AdminLogin(AdminLoginRequest request) { AdminLoginResponse response = new AdminLoginResponse(); StaffModel smodel = new StaffModel() { StaffName = request.AdminName, StaffPhone = request.AdminPhone, StaffPwd = request.AdminPwd }; //if (request == null || request.AdminName == null) //{ // response.Status = false; // response.Message = "用户不能为空"; // return response; //} //if (request == null || request.AdminPwd == null) //{ // response.Status = false; // response.Message = "密码不能为空"; // return response; //} var res = d.Administrator(smodel); if (!string.IsNullOrEmpty(res)) { response.IsRegistSuccess = true; response.Aname = res; response.Message = "登录成功"; } else { response.Status = false; response.Message = "登录失败"; } return(response); }
public async Task <IActionResult> AdminLogin(AdminLoginRequest loginDetails) { try { var data = await _adminBusiness.AdminLogin(loginDetails); if (data != null) { success = true; message = "Admin Successfully Logged In"; token = GenerateToken(data, "login"); return(Ok(new { success, message, data, token })); } else { message = "No Admin Account Present with this Email-ID and Password"; return(NotFound(new { success, message })); } } catch (Exception ex) { return(BadRequest(new { ex.Message })); } }
/// <summary> /// 管理员登录 /// </summary> /// <param name="userRegistered"></param> /// <returns></returns> public AdminLoginResponse AdminLogin(AdminLoginRequest loginRequest) { return(ApiRequestHelper.Post <AdminLoginRequest, AdminLoginResponse>(loginRequest)); }
public async Task <AdminLoginResult> HandleAdminLoginRequest(AdminLoginRequest adminLoginRequest) { var admin = await _authenticationRepository.GetAdmin( adminLoginRequest.FirstName, adminLoginRequest.LastName ); if (admin == null) { return new AdminLoginResult { Details = new ResultDetails { Message = "User not found.", ResultStatus = ResultStatus.Failure } } } ; if (adminLoginRequest.Password == null) { return new AdminLoginResult { Details = new ResultDetails { Message = "Password was not provided.", ResultStatus = ResultStatus.Failure } } } ; var correctPassword = ValidatePassword(adminLoginRequest.Password, admin.PasswordHash); if (!correctPassword) { return new AdminLoginResult { Details = new ResultDetails { Message = "The password was incorrect.", ResultStatus = ResultStatus.Failure } } } ; var token = GenerateToken(admin); return(new AdminLoginResult { Data = token, Details = new ResultDetails { Message = "Successful login.", ResultStatus = ResultStatus.Success } }); }
public async Task <ServiceResult <bool> > LoginAsync(AdminLoginRequest request) { if (request == null || string.IsNullOrWhiteSpace(request.Email) || string.IsNullOrWhiteSpace(request.Password)) { return(new ServiceResult <bool>(HttpStatusCode.BadRequest)); } SignInResult result = await _signInManager.PasswordSignInAsync(request.Email, request.Password, isPersistent : false, lockoutOnFailure : false); if (!result.Succeeded) { return(new ServiceResult <bool>(HttpStatusCode.Unauthorized)); } UserEntity userEntity = await _userManager.FindByEmailAsync(request.Email); if (userEntity == null) { // This situation may arise when the user is deleted in another thread return(new ServiceResult <bool>(HttpStatusCode.Unauthorized)); } List <Claim> claims = new List <Claim> { new Claim(ClaimTypes.Email, request.Email), new Claim("FullName", $"{userEntity.FirstName} {userEntity.LastName}"), new Claim(ClaimTypes.Role, "Administrator"), }; ClaimsIdentity claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); AuthenticationProperties authProperties = new AuthenticationProperties { //AllowRefresh = <bool>, // Refreshing the authentication session should be allowed. //ExpiresUtc = DateTimeOffset.UtcNow.AddMinutes(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. }; await _httpContextAccessor.HttpContext.SignInAsync( CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity), authProperties); //_logger.LogInformation("user {Email} logged in at {Time}." user.Email, DateTime.UtcNow); return(new ServiceResult <bool>(true)); }
public JsonResult AdminLogin(AdminLoginRequest request) { return(Json(b.AdminLogin(request))); }
public IActionResult AdminLogin(AdminLoginRequest request) { _authenticationService.AdminLogin(request.Username, request.Password); return(Ok()); }
public Response <TxSessionCredentials> Login(AdminLoginRequest request) { return(adminClient.Login(request)); }
public AdminLoginResponse AdminLogin(AdminLoginRequest request) { return(userBll.AdminLogin(request)); }