public async Task OnCreatingTicket(OAuthCreatingTicketContext ctx) { TUserInfo userInfo = await GetUserInfoFromContext(ctx); await CreateOrUpdateUser(userInfo); RoomiesData roomie = await FindUser(userInfo); ctx.Principal = CreatePrincipal(roomie); }
ClaimsPrincipal CreatePrincipal(RoomiesData roomie) { List <Claim> claims = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, roomie.RoomieId.ToString(), ClaimValueTypes.String), new Claim(ClaimTypes.Email, roomie.Email) }; ClaimsPrincipal principal = new ClaimsPrincipal(new ClaimsIdentity(claims, CookieAuthentication.AuthenticationType, ClaimTypes.Email, string.Empty)); return(principal); }
public async Task <RoomiesData> FindUser(string email, string password) { RoomiesData user = await _roomiesGateway.FindByEmail(email); if (user != null && _passwordHasher.VerifyHashedPassword(user.Password, password) == PasswordVerificationResult.Success) { return(user); } return(null); }
public async Task <Result <RoomiesData> > getRoomieIdByEmail(string email) { using (SqlConnection con = new SqlConnection(_connectionString)) { RoomiesData result = await con.QueryFirstOrDefaultAsync <RoomiesData>( "select r.RoomieId, r.FirstName from rm.tRoomie r where r.Email = @Email", new { Email = email }); if (result == null) { return(Result.Failure <RoomiesData>(Status.NotFound, "Roomie not found.")); } return(Result.Success(result)); } }
public async Task <IActionResult> Login(LoginViewModel model) { if (ModelState.IsValid) { RoomiesData roomie = await _roomiesService.FindUser(model.Email, model.Password); if (roomie == null) { ModelState.AddModelError(string.Empty, "Invalid login attempt."); return(View(model)); } await SignIn(roomie.Email, roomie.RoomieId.ToString()); return(RedirectToAction(nameof(Authenticated))); } return(View(model)); }
public async Task <Result <RoomiesData> > FindById2(int roomieId) { using (SqlConnection con = new SqlConnection(_connectionString)) { RoomiesData roomie = await con.QueryFirstOrDefaultAsync <RoomiesData>( @"select s.RoomieId, s.FirstName, s.LastName, s.BirthDate, s.Phone, s.Email from rm.tRoomie s where s.RoomieId = @RoomieId;", new { RoomieId = roomieId }); if (roomie == null) { return(Result.Failure <RoomiesData>(Status.NotFound, "Roomie not found.")); } return(Result.Success(roomie)); } }