Die Datensicherung war nicht erfolgreich auf Azure mit OWIN / Katana
Bin ich versucht zu implementieren-Passwort-reset auf einer OWIN/Katana-basierte ASP.NET MVC-website in Azure.
Es funktioniert, wenn lokal ausführen aber fehl in der Produktion.
Erstelle ich ein UserToken Anbieter
userManager.UserTokenProvider = new DataProtectorTokenProvider<ApplicationUser>(provider.Create("PasswordReset"))
Aber wenn ich versuche zu generieren, das token wie folgt
var resetToken = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
Bekomme ich folgende exception.
System.Sicherheit.Die Kryptographie.CryptographicException: Die Daten
Schutz-Vorgang nicht erfolgreich war. Dies wurde möglicherweise verursacht durch
nicht dass das Benutzerprofil geladen wird für den aktuellen thread der user
Kontext, was der Fall sein kann, wenn der thread die Identität.
System.Sicherheit.Die Kryptographie.ProtectedData.Schützen(Byte[] userData, Byte[] optionalEntropy, DataProtectionScope Umfang)
System.Sicherheit.Die Kryptographie.DpapiDataProtector.ProviderProtect(Byte[]
userData)
System.Sicherheit.Die Kryptographie.DataProtector.Schützen(Byte[] userData)
bei Microsoft.Owin.Sicherheit.DataProtection.DpapiDataProtector.Schützen(Byte[]
userData)
bei Microsoft.AspNet.Identität.Owin.DataProtectorTokenProvider 2.d__0.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, wo die Ausnahme ausgelöst wurde ---
System.- Laufzeit.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Aufgabe
Aufgabe)
System.- Laufzeit.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Aufgabe
Aufgabe)
bei Microsoft.AspNet.Identität.UserManager`2.d__e9.MoveNext()
InformationsquelleAutor der Frage Mat Guthrie | 2014-05-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe das gleiche problem, wenn ich versuche zu generieren, token mit ASP .Netto-Identität und benutzerdefinierte login-Funktion im Web-API.
Was ich getan habe ist einfach eine Anwendung erstellen, die Einstellung genannt
WEBSITE_LOAD_USER_PROFILE
in Microsoft Azure und auf 1 setzen. Diese Lösung funktioniert für mich.Können Sie im detail sehen hier
InformationsquelleAutor der Antwort Satria Janaka
Bitte Lesen Sie meine meine Antwort auf diese Frage. Eine viel einfachere Lösung kann erreicht werden durch die Verwendung
IAppBuilder.GetDataProtectionProvider()
InformationsquelleAutor der Antwort Loren Paulsen
Habe eine Lösung gefunden. Ich bin mir nicht ganz sicher, ob alle Maßnahmen notwendig sind, es funktioniert, aber jetzt ist meine app funktioniert perfekt:
1.- Aktualisieren Sie Ihr web.config unterstützt securityTokenHandlers
in dem configSections-Knoten. Und
als reguläre Knoten.
2.- In Ihrem Startup.Auth.cs-Datei, aktualisieren Sie Ihre ConfigureAuth(IAppBuilder app):
3.- Bereinigen Sie den Konstruktor von Ihrer Start-Klasse wie folgt aus:
Die für mich gearbeitet 🙂 ich hoffe es klappt auch bei Euch
InformationsquelleAutor der Antwort JLuis Estrada
Legte ich dieses auf Eis für eine Weile, aber war gezwungen, zurück zu kommen. Ich habe hier die Lösung gefunden:
Erzeugung von reset-password-token funktioniert nicht in der Azure-Website
InformationsquelleAutor der Antwort Mat Guthrie
Dieser Fehler passiert, für mich auf einem shared-hosting-provider, mit der Zeile:
War die Lösung ganz einfach. Zuerst ändern Sie die obige Zeile:
Dann erstellen Sie eine neue Datei, die ich in meiner Utilities-namespace, etwa so:
Et voila! Das Problem ist gelöst. Denken Sie nur daran, in Ihrem Passwort-reset-controller-Methode, müssen Sie auch diesen Anbieter verwenden, ansonsten erhalten Sie eine
Invalid Token
Fehler.InformationsquelleAutor der Antwort Sean
Immer den UserManager von der Owin-Pipeline, die als Satz in der App_Start/Startup.Auth.cs funktioniert auf Azure.
Ich bin mir nicht sicher, wie das funktioniert ausdrücklich.
Die DpApi sollte in Azure mit der beschriebenen Lösung im ersten link.
Wenn die DpApi ist eine statische Maschine-key-sets im Web.konfigurieren Sie alle server-Maschinen in der Lage sein, die zum entschlüsseln der verschlüsselten Daten erstellt, die von einer anderen Maschine in Ihrer Serverfarm ist das Verständnis dahinter.
(code wie in der standard-template - vom AccountController.cs)
InformationsquelleAutor der Antwort WarrenDodsworth