コード例 #1
0
        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);
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 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
         });
     }
 }