Génération de jeton de réinitialisation de mot de passe ne fonctionne pas dans Azure Site web

Je suis la mise en œuvre de réinitialiser le mot de passe fonctionnalité sur mon site à l'aide de la UserManager classe qui vient avec ASP.NET 5.

Tout fonctionne très bien dans mon environnement de dev. Cependant, une fois que je l'ai essayer dans le site de production qui est en cours d'exécution comme un site web Azure, j'obtiens l'exception suivante:

Système.De sécurité.La cryptographie.CryptographicException: La protection des données de l'opération a été un échec. Cela peut avoir été causée par ne pas avoir le profil de l'utilisateur chargé pour le thread actuel le contexte de l'utilisateur, qui peut être le cas lorsque le thread est usurper l'identité d'.

C'est de cette façon que je peux configurer le UserManager exemple:

var provider = new Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider(SiteConfig.SiteName);
UserManager.UserTokenProvider = new Microsoft.AspNet.Identity.Owin.DataProtectorTokenProvider<User>(provider.Create(ResetPasswordPurpose));

Puis-je générer le jeton de la même manière (à envoyer à l'utilisateur dans un e-mail afin qu'ils puissent vérifier qu'ils ne sont en effet de vouloir réinitialiser leur mot de passe):

string token = UserManager.GeneratePasswordResetToken(user.Id);

Malheureusement, lorsque cela s'exécute sur Azure, je reçois l'exception ci-dessus.

J'ai Googlé autour et a trouvé ce solution possible. Toutefois, il ne fonctionne pas du tout et j'obtiens toujours la même exception.

Selon le lien, il a quelque chose à voir avec les jetons de session ne fonctionne pas sur une batterie de serveurs web comme Azure.

  • Merci de voter sur la question aspnetidentity.codeplex.com/workitem/2439 pour la résolution de ce problème.
  • J'obtiens le même message d'erreur lors de l'exécution sur un Azure VM. Est-ce causé par la même chose? Ou devrait-il être une nouvelle question?
InformationsquelleAutor Andrew | 2014-05-04