public UserProfile LoginUser(UserProfileLogin userProfileLogin) { ArgumentsValidator.RaiseExceptionOfInvalidArguments( RaiseException.IfNotEmail(userProfileLogin.EMail, "Atenção: E-Mail inválido"), RaiseException.IfNullOrEmpty(userProfileLogin.PasswordHash, "Atenção: Senha inválida") ); return(_userProfileService.LoginUser(userProfileLogin)); }
private void AddUserProfileLogin(User user) { using (var dc = new LessThanDatabase()) { var userProfileLogin = dc.UserProfileLogins.FirstOrDefault(a => a.UniqueIdentifier == user.ClaimedIdentifier); if (userProfileLogin == null) { userProfileLogin = new UserProfileLogin { UniqueIdentifier = user.ClaimedIdentifier, UserProfile = dc.UserProfiles.First(a => a.UserProfileLogins.Any(b => b.UniqueIdentifier == User.Identity.Name)) }; dc.UserProfileLogins.AddObject(userProfileLogin); dc.SaveChanges(); } } }
public UserProfile LoginUser(UserProfileLogin userProfileLogin) { bool _isSucess = false; List <DbParameter> _parametros = new List <DbParameter>(); // Definição do parâmetros da consulta: SqlParameter pEmail = new SqlParameter() { ParameterName = "@email", Value = userProfileLogin.EMail }; _parametros.Add(pEmail); // Fim da definição dos parâmetros try { query = @"SELECT P.PessoaId, P.Nome, P.EMail, P.NomeFoto, P.Sexo, P.DtNascimento , P.NrCelular, P.PasswordHash, P.DtCadastro, P.PerfilId, P.Ativo FROM dbo.AD_Pessoa P WHERE P.EMail = @email"; // Define o banco de dados que será usando: CommandSql cmd = new CommandSql(strConnSql, query, EnumDatabaseType.SqlServer, parametros: _parametros); // Obtém os dados do banco de dados: UserProfile userProfile = GetCollection <UserProfile>(cmd)?.FirstOrDefault <UserProfile>(); if (userProfile != null) { _isSucess = PasswordFunctions.ValidaSenha(userProfileLogin.PasswordHash, userProfile.PasswordHash); } if (!_isSucess) { userProfile = null; } return(userProfile); } catch (Exception ex) { throw new Exception($"{ex.Message}"); } }
public Task <HttpResponseMessage> LoginUser(UserProfileLogin userProfileLogin) { HttpResponseMessage response = new HttpResponseMessage(); var tsc = new TaskCompletionSource <HttpResponseMessage>(); try { if (string.IsNullOrWhiteSpace(userProfileLogin.EMail)) { throw new InvalidOperationException("email não informado!"); } if (string.IsNullOrWhiteSpace(userProfileLogin.PasswordHash)) { throw new InvalidOperationException("password não informado!"); } var resultado = _userProfileApplication.LoginUser(userProfileLogin); response = Request.CreateResponse(HttpStatusCode.OK, resultado); tsc.SetResult(response); return(tsc.Task); } catch (Exception ex) { if (ex.GetType().Name == "InvalidOperationException" || ex.Source == "prmToolkit.Validation") { response = Request.CreateResponse(HttpStatusCode.NotFound); response.ReasonPhrase = ex.Message; } else { response = Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message); } tsc.SetResult(response); return(tsc.Task); } }
private void AddUserProfile(User user) { using (var dc = new LessThanDatabase()) { var userProfileLogin = dc.UserProfileLogins.FirstOrDefault(a => a.UniqueIdentifier == user.ClaimedIdentifier); if (userProfileLogin == null) { var userProfile = new UserProfile { EmailAddress = user.EmailAddress, FullName = user.Name, UserName = user.EmailAddress }; dc.UserProfiles.AddObject(userProfile); userProfileLogin = new UserProfileLogin { UniqueIdentifier = user.ClaimedIdentifier, UserProfile = userProfile }; dc.UserProfileLogins.AddObject(userProfileLogin); dc.SaveChanges(); } } }
public UserProfile LoginUser(UserProfileLogin userProfileLogin) { return(_userProfileRepository.LoginUser(userProfileLogin)); }
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { try { context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }); var _usuarioLogado = new { id = 0, nome = "" }; if (context.UserName.Equals(_appUserFBTC)) { //Obter o token com o usuário de consulta do site da fbtc.org.br: ArgumentsValidator.RaiseExceptionOfInvalidArguments( RaiseException.IfTrue(context.Password != _appPassword, "Senha Inválida") ); _usuarioLogado = new { id = 0, nome = "fbtc.org.br" }; } else { //Obter o Token de acesso com o login e a senha do usuário que está se logando no sistema: if (string.IsNullOrWhiteSpace(context.UserName)) { throw new InvalidOperationException("email não informado!"); } if (string.IsNullOrWhiteSpace(context.Password)) { throw new InvalidOperationException("password não informada!"); } UserProfileLogin _userProfileLogin = new UserProfileLogin() { EMail = context.UserName, PasswordHash = context.Password }; var usuarioLogado = _userProfileApplication.LoginUser(_userProfileLogin); ArgumentsValidator.RaiseExceptionOfInvalidArguments( RaiseException.IfNull(usuarioLogado, "Usuário ou Senha inválidos") ); _usuarioLogado = new { id = usuarioLogado.PessoaId, nome = usuarioLogado.Nome }; } var identity = new ClaimsIdentity(context.Options.AuthenticationType); // Definindo o Claims: identity.AddClaim(new Claim("Logado", Newtonsoft.Json.JsonConvert.SerializeObject(_usuarioLogado))); GenericPrincipal principal = new GenericPrincipal(identity, new string[] { }); Thread.CurrentPrincipal = principal; context.Validated(identity); } catch (Exception ex) { context.SetError("invalid_grant", ex.Message); return; } }