public static void BuildClaims(this ClaimsIdentity identity, User user) { identity.AddClaims(new List<Claim> { new Claim(ClaimTypes.Name, user.Username), new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim(CustomClaimTypes.UserType, user.UserType.ToString()) }); }
private void SaveLoginInformation(User user, Guid issuedId) { _authKeyRepository.SetAuthKey(user.Id, issuedId); // Update User record with latest login information. user.LastLoginDate = DateTime.UtcNow; user.LoginAttempts = 0; user.Locked = false; _userRepository.Update(user); _loginSessionRepository.Insert(new LoginSession { UserId = user.Id, LoginDateTime = DateTime.UtcNow }); }
private void HandleFailedLogin(OAuthGrantResourceOwnerCredentialsContext context, User user) { user.LoginAttempts = (byte)(user.LoginAttempts + 1); if (user.LoginAttempts > 3) { user.Locked = true; } _userRepository.Update(user); var errorMessage = (user.LoginAttempts < 3) ? string.Format("The password is incorrect, you have {0} attempts left. ", 3 - user.LoginAttempts) : "The user account is locked."; context.SetError("invalid_grant", errorMessage); }
private static AuthenticationProperties CreateProperties(User user) { return new AuthenticationProperties(new Dictionary<string, string> { { "username", user.Username }, { "userId", user.Id.ToString() }, { "userTypeId", ((int)user.UserType).ToString(CultureInfo.InvariantCulture) } }); }