MVC 5 de l'Identité 2.0 de verrouillage ne fonctionne pas
J'ai besoin de bloquer un utilisateur de façon permanente. Je ne comprends pas pourquoi ce code ne fonctionne pas.
Cette ligne UserManager.IsLockedOut(user.Id);
retourne toujours false
au lieu de true
.
C'est peut-être nécessaire de mettre cette ligne UserManager.UserLockoutEnabledByDefault = true;
de l'utilisateur phase d'enregistrement?
using (var _db = new ApplicationDbContext())
{
UserStore<DALApplicationUser> UserStore = new UserStore<DALApplicationUser>(_db);
UserManager<DALApplicationUser> UserManager = new UserManager<DALApplicationUser>(UserStore);
UserManager.UserLockoutEnabledByDefault = true;
DALApplicationUser user = _userService.GetUserByProfileId(id);
bool a = UserManager.IsLockedOut(user.Id);
UserManager.SetLockoutEnabled(user.Id, true);
a = UserManager.IsLockedOut(user.Id);
_db.SaveChanges();
}
OriginalL'auteur Alexander | 2015-05-26
Vous devez vous connecter pour publier un commentaire.
La ligne
n'est pas le verrouillage ou le déverrouillage du compte. Cette méthode est utilisée pour activer en permanence ou de désactiver le verrouillage de la processus pour le compte d'utilisateur donné. Comme il est, vous êtes de faire un appel qui est essentiellement le réglage de ce compte d'utilisateur jusqu'à être lié par les règles de verrouillage de compte. Faire un appel avec le deuxième paramètre comme
false
ie:vous permettra de configurer un compte d'utilisateur qui est exempté de l'application des règles de blocage de ce qui peut être utile pour un compte administrateur.
Voici le code pour
UserManager.IsLockedOutAsync
:Comme vous pouvez le voir, pour un utilisateur d'être classé en lock-out, le lock-out doit être activé en tant que ci-dessus et l'utilisateur doit disposer d'un
LockoutEndDateUtc
valeur qui est supérieure ou égale à la date actuelle.Donc, pour "définitivement" verrouiller un compte, vous pouvez effectuer les opérations suivantes:
OriginalL'auteur Jamie Dunstan
La fonction
SetLockoutEnabled
n'a pas de verrouillage de l'utilisateur, il permet au dispositif de verrouillage pour l'utilisateurvous avez besoin
Il va enregistrer un échec, et le verrouillage de l'utilisateur si le Verrouillage est activé et l'échec nombre est atteint.
OriginalL'auteur Ruchan
Définir la shouldLockout valeur à true dans votre action Login (c'est à false par défaut)
OriginalL'auteur Yovav