La protection des données de l'opération a échoué sur Azure à l'aide d'OWIN / Katana

Je suis en train de mettre en œuvre de réinitialisation de mot de passe sur un OWIN/Katana en fonction ASP.NET MVC site web de la course dans Azure.

Il fonctionne très bien lorsqu'il est exécuté localement, mais échoue dans la production.

- Je créer un UserToken Fournisseur de

userManager.UserTokenProvider = new DataProtectorTokenProvider<ApplicationUser>(provider.Create("PasswordReset"))

Mais lorsque je tente de générer le jeton comme suit

var resetToken = await UserManager.GeneratePasswordResetTokenAsync(user.Id);

- Je obtenir de l'exception suivante.

Système.De sécurité.La cryptographie.CryptographicException: Les données
la protection de l'opération a été un échec. Cela peut avoir été causé par
n'ayant pas le profil de l'utilisateur chargé de la thread courante de l'utilisateur
contexte, qui peut être le cas lorsque le thread est usurper l'identité.
au Système.De sécurité.La cryptographie.ProtectedData.Protéger(Byte[] userData, Byte[] optionalEntropy, DataProtectionScope portée)
au Système.De sécurité.La cryptographie.DpapiDataProtector.ProviderProtect(Byte[]
userData)
au Système.De sécurité.La cryptographie.DataProtector.Protéger(Byte[] userData)
chez Microsoft.Owin.De sécurité.DataProtection.DpapiDataProtector.Protéger(Byte[]
userData)
chez Microsoft.AspNet.L'identité.Owin.DataProtectorTokenProvider 2.d__0.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent où l'exception a été levée ---
au Système.Moment de l'exécution.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Tâche
la tâche)
au Système.Moment de l'exécution.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Tâche
la tâche)
chez Microsoft.AspNet.L'identité.UserManager`2.d__e9.MoveNext()

avez-vous trouvé la solution ?
Notez encore. Des idées?
oui j'ai trouvé une solution de contournement, mais je ne suis pas totalement satisfaire. Il semble que c'est en raison de la AppName paramètre qui n'est pas le même partout dans l'application. J'ai donc utilisé une application de paramètres de Configuration(IAppBuilder app) appel de OwinStartupAttribute pour instancier les IDataPRovider et il semble fonctionner. Pour obtenir l'objet dataprovider vous pouvez le faire comme ceci : app.GetDataProtectionProvider(). Dites-moi si ce travail
Merci de voter sur la question aspnetidentity.codeplex.com/workitem/2439 pour la résolution de ce problème.

OriginalL'auteur Mat Guthrie | 2014-05-21