public async Task <ActionResult> Login([FromBody] UsuarioLoginArgs login) { UsuarioAutenticadoViewModel usuario = await _usuarioQueries.AutenticarUsuario(login); if (usuario != null) { return(ResponseBase(usuario)); } NotifyError("Usuario e/ou senha invalidos"); return(ResponseBase()); }
public UsuarioAutenticadoViewModel CreateUsuarioAutenticado(string token, Usuario usuario) { var usuarioViewModel = _mapper.Map <UsuarioViewModel>(usuario); var usuarioAutenticadoViewModel = new UsuarioAutenticadoViewModel { Token = token, UsuarioViewModel = usuarioViewModel }; return(usuarioAutenticadoViewModel); }
public ActionResult Login(UsuarioLoginViewModel model) { if (ModelState.IsValid) { try { Usuario u = repository.Find(model.Login, Criptografia.EncriptarSenhaMD5(model.Senha)); if (u != null) { UsuarioAutenticadoViewModel auth = new UsuarioAutenticadoViewModel(); auth.IdUsuario = u.IdUsuario; auth.Nome = u.Nome; auth.Login = u.Login; auth.Foto = u.Foto; auth.DataHoraAcesso = DateTime.Now; //converter o objeto para JSON.. string authJSON = JsonConvert.SerializeObject(auth); //criar o ticket de acesso.. FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(authJSON, false, 60); //gravar o ticket em cookie.. HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket)); Response.Cookies.Add(cookie); //return Json(new { redirectTo = Url.Action("Index", "Principal", new { area = "RestrictArea" }), }, JsonRequestBehavior.AllowGet); return(RedirectToAction("Index", "Home", new { area = "AreaRestrita" })); } else { ViewBag.Mensagem = "Acesso negado. Usuário não encontrado."; } } catch (Exception e) { ViewBag.Mensagem = e.Message; } } return(View()); }
public HttpResponseMessage GetData() { try { Usuario u = JsonConvert.DeserializeObject <Usuario>(User.Identity.Name); UsuarioAutenticadoViewModel model = new UsuarioAutenticadoViewModel(); model.IdUsuario = u.IdUsuario; model.Nome = u.Nome; model.Login = u.Login; return(Request.CreateResponse(HttpStatusCode.OK, model)); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, e.Message)); } }
private void GerarToken(UsuarioAutenticadoViewModel usuario) { Claim[] claims = new Claim[] { new Claim(ClaimTypes.NameIdentifier, usuario.Id.ToString()), new Claim(ClaimTypes.Name, usuario.Nome.ToString()), new Claim(ClaimTypes.Email, usuario.Email.ToString()), }; JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler(); byte[] key = Encoding.ASCII.GetBytes(_appSettings.Chave); DateTime ExpiresIn = DateTime.UtcNow.AddHours(_appSettings.ExpiracaoHoras); SecurityTokenDescriptor tokenDescriptor = new SecurityTokenDescriptor { Issuer = _appSettings.Emissor, Audience = _appSettings.ValidoEm, Subject = new ClaimsIdentity(claims), Expires = ExpiresIn, SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; SecurityToken token = tokenHandler.CreateToken(tokenDescriptor); string encodedToken = tokenHandler.WriteToken(token); usuario.Token = encodedToken; }