public async Task <IActionResult> Login(UserModelLogin userLogin) { string username = userLogin.UserName; string password = userLogin.Password; // get the ApplicationUser to verify //var userToVerify = await userManager.FindByNameAsync(username); var userToVerify = userManager.Users.Include(b => b.RefreshTokens).Single(u => u.UserName == username); if (userToVerify == null) { // Don't reveal that the user does not exist return(BadRequest()); } // check the credentials if (await userManager.CheckPasswordAsync(userToVerify, password)) { var claims = new List <Claim>() { new Claim(JwtRegisteredClaimNames.Sub, username), // The "sub" (subject) claim identifies the principal that is the subject of the JWT. new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), // The "jti" (JWT ID) claim provides a unique identifier for the JWT. }; // Adding roles code var userClaims = await userManager.GetClaimsAsync(userToVerify); // UserManager.GetClaimsAsync(user) queries the UserClaims table. // var roleClaims = await roleManager.GetClaimsAsync(userToVerify); // RoleManager.GetClaimsAsync(role) queries the RoleClaims table. // var roles = await userManager.GetRolesAsync(userToVerify); // System.NotSupportedException: Store does not implement IUserRoleStore<TUser>. claims.AddRange(userClaims); // generate access token var accessToken = tokenService.GenerateAccessToken(claims); // generate and add refresh token var refreshToken = tokenService.GenerateRefreshToken(); // HttpContext.Connection.RemoteIpAddress is set by XForwardedFor header var remoteIpAddress = HttpContext.GetRemoteIPAddress(true).MapToIPv4().ToString(); var userAgent = Request.Headers["User-Agent"].ToString(); userToVerify.AddRefreshToken(refreshToken, remoteIpAddress, userAgent); await userManager.UpdateAsync(userToVerify); // return basic user info (without password) and token to store client side var userModel = mapper.Map <UserModel>(userToVerify); return(Ok(new { User = userModel, Claims = userClaims, Token = accessToken, RefreshToken = refreshToken })); } else { return(BadRequest()); } }
public ActionResult Login(UserModelLogin _userModel) { if (ModelState.IsValid) { List <string> columns = new List <string>(); columns.Add("email"); List <string> values = new List <string>(); values.Add(_userModel.EmailLogin); if (new DMLQuery().ExistData("usuario", columns, values)) { MD5 md5hash = MD5.Create(); string passwordHashed = PasswordProcedures.ToMD5Hash(_userModel.PasswordLogin); if (new UsersQuery().Login(_userModel.EmailLogin, passwordHashed)) { var nivel = new DMLQuery().GetData("usuario_admin", "usuario", "email", _userModel.EmailLogin); if (Convert.ToInt32(nivel) >= 2) { //SE O NIVEL >= 1 O USUARIO TEM PERMISSÃO PARA ACESSAR O INDEX AdminCookieController.AdminID = new UsersQuery().GetUserID(_userModel.EmailLogin); AdminCookieController.AdminEmail = _userModel.EmailLogin; ModelState.Clear(); _userModel = null; return(RedirectToAction("Index", "Admin")); } else { ViewBag.Message = "Usuário sem permissão"; } } else { ViewBag.Message = "Usuario ou senha incorreto"; } } else { ViewBag.Message = "Usuário Não existe"; } } return(View(_userModel)); }
public HttpResponseMessage LoginUser(UserModelLogin user) { Chat.Models.User userFull = new Chat.Models.User() { Username = user.Username, Password = user.Password }; var userLog = this.repository.LoginUser(userFull); var loggedUser = new UserModelLogged() { Nickname = userLog.Nickname, SessionKey = userLog.SessionKey }; return(Request.CreateResponse(HttpStatusCode.OK, loggedUser)); }
public BaseModel <object> Login([FromBody] UserModelLogin login) { BaseModel <object> model = new BaseModel <object>(); var user = lc.AuthenticateUser(login.username, login.password); if (!user.isEnableError.Value) { model.status = 1; model.data = user; return(model); } model.status = 0; model.error.message = user.isMessageError; model.data = null; return(model); }