예제 #1
0
        // POST api/<controller>
        public LoginViewModel Post([FromBody]LoginViewModel value)
        {
            var senha = this.hashString.Do(value.Senha);
            var usuario = this.usuarioRepositorio.Procurar(value.Login, senha);

            var login = new LoginViewModel();
            login.Autenticado = false;

            if (usuario != null)
            {
                login = this.ObterUsuarioModel(usuario);
                this.CriarTicketDeAutenticacao(usuario, login);
                this.logarAcaoSistema.Execute(
                    TipoTrilha.Acesso,
                    "Acesso ao Sistema",
                    "Acessou o sistema",
                    usuario);
            }

            return login;
        }
예제 #2
0
        private LoginViewModel ObterUsuarioModel(Usuario usuario)
        {
            LoginViewModel login;

            var funcionalidades = this.FuncionalidadesPermitidas(usuario);
            var relativo = string.Empty;

            try
            {
                var imagem = this.storageServico.Obter("[usuario]" + usuario.Id.ToString());

                relativo = imagem
                    .Replace(Aplicacao.Caminho, string.Empty)
                    .Replace(@"\", "/");
            }
            catch (Exception)
            {
                relativo = string.Empty;
                Log.App.Info("Usuario Sem Avatar");
            }

            login = new LoginViewModel
            {
                Login = usuario.Login,
                Nome = usuario.Nome,
                Senha = usuario.Senha,
                Autenticado = true,
                Funcionalidades = funcionalidades,
                Avatar = relativo
            };

            return login;
        }
예제 #3
0
        private void CriarTicketDeAutenticacao(
            Usuario usuario, 
            LoginViewModel login)
        {
            FormsAuthentication.SetAuthCookie(usuario.Login, true);

            var coockie = FormsAuthentication.GetAuthCookie(usuario.Login, true);
            coockie.Expires = DateTime.Now.AddMinutes(30);
            var decriptedCoockie = FormsAuthentication.Decrypt(coockie.Value);

            var ticket = new FormsAuthenticationTicket(
                decriptedCoockie.Version,
                decriptedCoockie.Name,
                decriptedCoockie.IssueDate,
                coockie.Expires,
                true,
                decriptedCoockie.UserData);

            coockie.Value = FormsAuthentication.Encrypt(ticket);
            HttpContext.Current.Response.Cookies.Add(coockie);
        }