public Result <ServiceResponse> Login(LoginRequest request) { return(this.ExecuteMethod(() => { request.CheckNotNull(); if (string.IsNullOrEmpty(request.Username)) { throw new ArgumentNullException("username"); } var username = request.Username; if (WebSecurityHelper.Authenticate(ref username, request.Password, false)) { //set session //var test = Authorization.UserDefinition; //var ud = Authorization.UserDefinition as UserDefinition; //Session["DataKtp"] = ud.Ktp; //Session["DataSlideshow"] = ud.SlideShow.ToList(); return new ServiceResponse(); } throw new ValidationError("AuthenticationError", Texts.Validation.AuthenticationError); })); }
public async Task <IActionResult> GenerateToken(LoginRequest request) { bool loggedIn = false; if (ModelState.IsValid) { request.CheckNotNull(); if (string.IsNullOrEmpty(request.Username)) { throw new ArgumentNullException("username"); } await Task.Run(() => { var username = request.Username; if (WebSecurityHelper.Authenticate(ref username, request.Password, false)) { loggedIn = true; } }); if (loggedIn) { var claims = new[] { new Claim(JwtRegisteredClaimNames.NameId, request.Username), new Claim(ClaimTypes.Name, request.Username), new Claim(ClaimTypes.NameIdentifier, request.Username), new Claim(JwtRegisteredClaimNames.UniqueName, request.Username), new Claim(JwtRegisteredClaimNames.Sub, request.Username), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), }; //var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Tokens:Key"])); var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("kDDlhs8pVhNIqVUCxdAOX0D")); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken("https://localhost:44310", "https://localhost:44310", claims, expires: DateTime.Now.AddDays(365), signingCredentials: creds); return(Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token) })); } else { //var error = new ServiceError(); //error.Code = "400A"; //error.Message = "Admission already taken"; return(BadRequest(Texts.Validation.AuthenticationError)); } } return(BadRequest("Could not create token")); }
public HttpResponseMessage Post(LoginRequest request) { LoginResponse response = new LoginResponse(); if (request == null) { response.IsSuccess = false; response.Result = "请求的数据不能为空"; return BuildErrorResult(HttpStatusCode.BadRequest, response); } if (String.IsNullOrWhiteSpace(request.Username)) { response.IsSuccess = false; response.Result = "用户名不能为空"; return BuildErrorResult(HttpStatusCode.BadRequest, response); } var username = request.Username; if (Dependency.Resolve<IAuthenticationService>().Validate(ref username, request.Password)) { CheckTwoFactorAuthentication(username, request); WebSecurityHelper.SetAuthenticationTicket(username, false); response.IsSuccess = true; response.Result = "登录成功"; //var user = (UserDefinition) Authorization.UserDefinition; if (Dependency.Resolve<IUserRetrieveService>().ByUsername(username) is UserDefinition user) { response.TenantId = user.TenantId; string sql = $"select * from [dbo].[UserRoles] where UserId = {user.UserId}"; int roleId = 0; using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Default"].ConnectionString)) { var userRole = conn.Query<UserRoleRow>(sql).FirstOrDefault(); if (userRole != null && userRole.RoleId != null) roleId = userRole.RoleId.Value; } //var userRole = new UserRoleRepository().List(SqlConnections.NewFor<UserRoleRow>(), new Administration.UserRoleListRequest{UserID = user.UserId}).Entities.First(); if (username == "admin" || roleId == 1) { response.IsAdmin = true; } } return BuildSuccessResult(HttpStatusCode.OK, response); } response.IsSuccess = false; response.Result = "用户名或密码不正确"; return BuildErrorResult(HttpStatusCode.BadRequest, response); }
public HttpResponseMessage LoginForApp(LoginRequest request) { HttpResponseMessage responseMessage = new HttpResponseMessage(); LoginResponse response = new LoginResponse(); var formatter = new JsonMediaTypeFormatter(); formatter.SerializerSettings = new Newtonsoft.Json.JsonSerializerSettings { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore }; if (request == null) { response.IsSuccess = false; response.Result = "请求的数据不能为空"; responseMessage.StatusCode = HttpStatusCode.BadRequest; responseMessage.Content = new ObjectContent <LoginResponse>(response, formatter); return(responseMessage); } if (String.IsNullOrWhiteSpace(request.Username)) { responseMessage.StatusCode = HttpStatusCode.BadRequest; response.IsSuccess = false; response.Result = "用户名不能为空"; responseMessage.Content = new ObjectContent <LoginResponse>(response, formatter, "application/json"); return(responseMessage); } var username = request.Username; if (Dependency.Resolve <IAuthenticationService>().Validate(ref username, request.Password)) { CheckTwoFactorAuthentication(username, request); WebSecurityHelper.SetAuthenticationTicket(username, false); response.IsSuccess = true; response.Result = "登录成功"; responseMessage.StatusCode = HttpStatusCode.OK; responseMessage.Content = new ObjectContent <LoginResponse>(response, formatter); return(responseMessage); } response.IsSuccess = false; response.Result = "用户名或密码不正确"; responseMessage.StatusCode = HttpStatusCode.BadRequest; responseMessage.Content = new ObjectContent <LoginResponse>(response, formatter); return(responseMessage); }
public Result <ServiceResponse> Login(LoginRequest request) => this.ExecuteMethod(() => { request.CheckNotNull(); if (string.IsNullOrEmpty(request.Username)) { throw new ArgumentNullException("username"); } var username = request.Username; if (WebSecurityHelper.Authenticate(ref username, request.Password, false)) { return(new ServiceResponse()); } throw new ValidationError("AuthenticationError", Texts.Validation.AuthenticationError); });
public Result <ServiceResponse> Login(LoginRequest request) { return(this.ExecuteMethod(() => { request.CheckNotNull(); if (request.Username == null) { throw new ArgumentNullException("username"); } var username = request.Username; if (WebSecurityHelper.Authenticate(ref username, request.Password, false)) { return new ServiceResponse(); } throw new ValidationError("AuthenticationError", null, "Invalid username or password!"); })); }
public Result Check(LoginModel input) { Result result = Result.Create(); if (!ModelState.IsValid) { throw new Exception(ModelState.Values.Where(x => x.Errors.Count > 0).Select(x => x.Errors).FirstOrDefault().Select(x => x.ErrorMessage).FirstOrDefault()); } var validate = WebSecurityHelper.ValidateUser(input.username, input.password, input.remember, () => { var user = _sysUserServices.GetUserByName(input.username); if (user == null) { throw new Exception("账户不存在"); } var systemUser = new Operator() { Id = user.Id, UserName = user.Name, Password = user.Password, Name = user.LoginName, IsAdministrator = user.Isadmin == 1 }; switch (user.State) { case 1: throw new Exception("账户被禁用"); case -1: throw new Exception("账户不存在"); } return(systemUser); }); return(validate); }
public Result <ServiceResponse> Login(LoginRequest request) { return(this.ExecuteMethod(() => { request.CheckNotNull(); if (string.IsNullOrEmpty(request.Username)) { throw new ArgumentNullException("username"); } var username = request.Username; if (Dependency.Resolve <IAuthenticationService>().Validate(ref username, request.Password)) { CheckTwoFactorAuthentication(username, request); WebSecurityHelper.SetAuthenticationTicket(username, false); return new ServiceResponse(); } throw new ValidationError("AuthenticationError", Texts.Validation.AuthenticationError); })); }
public ActionResult Signout() { WebSecurityHelper.LogOut(); return(new RedirectResult("~/")); }
public SecurityTest() { //_securityHelper = new SecurityHelper(); _securityHelper = new WebSecurityHelper(); }