// 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; }
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; }
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); }