ASP.NET Identité 2 Me Souviens - Utilisateur Est déconnecté
Je suis à l'aide d'Identité 2.1 dans mon MVC5 app.
Je suis en train de le isPersistent propriété de la PasswordSignInAsync à true pour activer l'option "se Souvenir de Moi":
var result = await SignInManager.PasswordSignInAsync(model.Username,
model.Password,
true,
shouldLockout: false);
Mais si je reste connecté pendant la nuit, lorsque j'actualise la page, dans la matinée, il se connecte moi et j'ai à nouveau de se connecter.
Comment puis-je empêcher l'enregistrement automatique jusqu'à ce que l'utilisateur manuellement les journaux?
Est-il quelque chose à voir avec le Cookie d'Authentification d'identité, qui utilise? Je ne comprends pas vraiment le CookieAuthenticationOptions qui sont définies dans la phase de Démarrage.Auth.cs.
new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator
.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user)
=> user.GenerateUserIdentityAsync(manager))
}
validateInterval: TimeSpan.FromMinutes(30)
signifie que le cookie est valable pour 30 minutes. DONC oui, il sera expiré par le matin.Très bien, merci. Je n'étais pas sûr si elles étaient liées.
Avez-vous la réponse qui vous attend? Chacun a dit de changer expireTimeSpan. J'ai besoin comme notre application définie à expireTimeSpan, mais dans des cas sélectionnés se souvenir de moi, puis jeton doit pas expirer à tout cause jusqu'à l'utilisateur de connecter manuellement.
je veux quelque chose comme ça, avez-vous la solution ?
L'expiration de ce jeton ne peut être modifié, comme nous le faisons dans la session. Nous sommes les seuls à renouveler le jeton manuellement. Nous avons à faire avec le "Refreshtoken". Mais ici la délicate nous devons faire, nous avons besoin de faire un jeton d'actualisation après un certain intervalle de temps. Qui va nous aider à garder à l'utilisateur actif. Avez-vous essayé?
OriginalL'auteur Rhys Stephens | 2015-01-05
Vous devez vous connecter pour publier un commentaire.
Je pense que vous devriez lire cet article . Il y a deux intervalles différents:
ValidateInterval
etExpireTimeSpan
. Et dans votre cas, je pense que vous devriez changer leexpireTimeSpan
, pas laValidateInterval
.OriginalL'auteur AlexSolovyov
Il y a une explication pour
TimeSpan
paramètre dans question similaire. Utilisez simplement l'infini des cookies, comme ceci:Ceci est également nécessaire pour qu'il fonctionne correctement:
Appel
avant
OnValidateIdentity = SecurityStampValidator .OnValidateIdentity<ApplicationUserManager, ApplicationUser>( validateInterval: TimeSpan.FromDays(30), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
Qui témoin est-il censé être?dans votre code, vous utilisez les 30 jours de délai d'attente. Mais cela peut ne pas fonctionner comme il bat intérieure de limitations. Essayez d'utiliser exactement à zéro, selon
TimeSpan
Je vais l'essayer. C'est un peu maladroit d'avoir à le faire de cette façon.
Cela signifie que l'utilisateur peut ne jamais se connecter sur la même réponse que vous avez mentionné dans votre réponse. Ce qui signifie que je ne peux pas mettre zéro.
Alors je ne comprends pas exactement ce que vous voulez.
OriginalL'auteur VMAtm
Je devrais écrire plus. Cet étrange code:
était la cause de mon application à la perte de cookie après 1 jour. Je ne sais pas vraiment pourquoi, mais après l'exclusion de ce code et l'ajout d'une machine clé de mon web.config "se souvenir de moi" l'avenir est enfin le droit de travailler.
Mon code actuel est:
OriginalL'auteur AlexSolovyov
Forme ce post, le
isPersistent
paramètre définit si la session d'authentification est a persisté à travers de multiples demandes.OriginalL'auteur Carlos Liu