public override string[] GetRolesForUser(string values) { LoginRequisicao usuarioLogin = new LoginRequisicao { Login = values.Split('-')[3], Senha = Helpers.Decrypt(values.Split('-')[4]), }; Usuario usuario = new Usuario(); ResponseViewModel <Usuario> loginUsuario = new ResponseViewModel <Usuario>(); Task.Run(async() => { BaseController <Usuario> baseController = new BaseController <Usuario>(); ResponseViewModel <Usuario> returnResponse = await baseController.PostObject(usuarioLogin, "Usuarios/Login"); usuario = returnResponse.Data; }).Wait(); string tipoRole = usuario.Level.Equals(2) ? "Cliente" : "Estacionamento"; string[] result = { tipoRole }; return(result); }
public ActionResult Login(LoginRequisicao usuario) { if (ModelState.IsValid) { ResponseViewModel <Usuario> loginUsuario = new ResponseViewModel <Usuario>(); Task.Run(async() => { ResponseViewModel <Usuario> returnResponse = await PostObject(usuario, "Usuarios/Login"); loginUsuario = returnResponse; }).Wait(); if (loginUsuario.Sucesso.Equals(true)) { string KeyCookieIP = Guid.NewGuid().ToString().Substring(0, 7); loginUsuario.Data.Senha = usuario.Senha; AdministradorAutenticacao.SetCookieParaUsuario(loginUsuario.Data, usuario.ManterConectado, KeyCookieIP); if (loginUsuario.Data.Level.Equals(1)) { return(RedirectToAction("Estacionamento", "Menu")); } else { return(RedirectToAction("Cliente", "Menu")); } } else { ModelState.AddModelError(string.Empty, loginUsuario.Mensagem); return(View(usuario)); } } else { return(View(usuario)); } }
public async Task<IHttpActionResult> Login(LoginRequisicao requisicao) { if (!ModelState.IsValid) { return ApiBadRequest(ModelState); } var usuarioAplicacao = await UserManager.FindByNameAsync(requisicao.Codigo); if (usuarioAplicacao == null) { return ApiNotFound("Usuário não cadastrado."); } PerfilUsuario usuarioPerfil = _unitOfWork.PerfilUsuarioRepository.GetByUserId(usuarioAplicacao.Id); if (usuarioPerfil == null) { return ApiNotFound("Usuário não cadastrado."); } if (usuarioPerfil.Ativo == false) { return ApiForbidden("Usuário inativo.", requisicao.Codigo); } if (usuarioPerfil.UsuarioEmpresas.Count == 0) { return ApiForbidden("Usuário sem empresa.", requisicao.Codigo); } SignInStatus resultadoLogin = await SignInManager.PasswordSignInAsync(requisicao.Codigo, requisicao.Senha, false, shouldLockout: true); if (resultadoLogin == SignInStatus.Failure) { return ApiBadRequest("Senha inválida.", requisicao.Codigo); } if (resultadoLogin == SignInStatus.LockedOut) { return ApiForbidden("Usuário bloqueado.", requisicao.Codigo); } IList<string> usuarioPermissoes = await UserManager.GetPermissionsAsync(usuarioAplicacao.Id); if (usuarioPermissoes == null || !usuarioPermissoes.Any(w => w.Equals(Permissions.ColetorAcesso.AcessarRFArmazenagem, StringComparison.OrdinalIgnoreCase) || w.Equals(Permissions.ColetorAcesso.AcessarRFSeparacao, StringComparison.OrdinalIgnoreCase) || w.Equals(Permissions.ColetorAcesso.AcessarRFExpedicao, StringComparison.OrdinalIgnoreCase))) { return ApiForbidden("Usuário sem permissão.", requisicao.Codigo); } GerarTokenAcessoColetorResponse tokenResposta = await _accountService.GerarTokenAcessoColetor(requisicao.Codigo, requisicao.Senha, usuarioAplicacao.Id); usuarioAplicacao.IdApplicationSession = tokenResposta.ApplicationSession.IdApplicationSession; UserManager.Update(usuarioAplicacao); var empresasUsuario = Mapper.Map<List<EmpresaModelResponse>>(tokenResposta.EmpresasUsuario); var response = new LoginResposta { AccessToken = tokenResposta.Token.AccessToken, TokenType = tokenResposta.Token.TokenType, Empresas = empresasUsuario.OrderBy(o => o.Sigla).ToList() }; return ApiOk(response); }
public async Task <ResponseViewModel <Usuario> > Login(LoginRequisicao loginRequisicao) { try { if (!string.IsNullOrEmpty(loginRequisicao.Login) && !string.IsNullOrEmpty(loginRequisicao.Senha)) { Usuario usuario = new Usuario(); Task.Run(async() => { Usuario usuarioRetorno = await db.Usuarios.FirstOrDefaultAsync(x => x.Login.Equals(loginRequisicao.Login)); usuario = usuarioRetorno; }).Wait(); if (usuario == null || string.IsNullOrEmpty(usuario.AuxSenha)) { return(new ResponseViewModel <Usuario>() { Data = null, Serializado = true, Sucesso = false, Mensagem = "Invalid Login" }); } string senha = Helpers.CriarSenha(loginRequisicao.Senha, usuario.AuxSenha); Task.Run(async() => { Usuario usuarioRetorno = await db.Usuarios.Include("Pessoa").FirstOrDefaultAsync( x => x.Login.Equals(loginRequisicao.Login) && x.Senha.Equals(senha)); usuario = usuarioRetorno; }).Wait(); if (usuario != null) { return(new ResponseViewModel <Usuario>() { Data = usuario, Serializado = true, Sucesso = true, Mensagem = "Dados retornados com sucesso." }); } else { return(new ResponseViewModel <Usuario>() { Data = null, Serializado = true, Sucesso = false, Mensagem = "Login ou Senha não foram definidos, por favor insira-os." }); } } else { return(new ResponseViewModel <Usuario>() { Data = null, Serializado = true, Sucesso = false, Mensagem = "Login ou Senha não foram definidos, por favor insira-os." }); } } catch (Exception e) { return(new ResponseViewModel <Usuario>() { Data = null, Serializado = true, Sucesso = false, Mensagem = "Não foi possivel atender a sua solicitação: " + e.Message }); } }