Wenn Sie mit Identity 2.0 gearbeitet haben, haben Sie diesen Code gesehen:
%Vor%Ich verstehe das. In meiner Anwendung ist options.DataProtectionProvider (offensichtlich als Parameter übergeben) null. Wie und wo ist das festgelegt (oder nicht?) Jeder Ort, an dem ich gesucht habe, hat genau diesen Codeschnipsel, aber keine Erklärung für den DataProtectionProvider.
EDIT: Ich habe DataProtectionProvider im Identity-Beispielprojekt gelesen, das erklärt Was der UserTokenProvider ist, erklärt aber nicht, wie er im IdentityFactoryOptions-Objekt festgelegt ist.
Es ist festgelegt, wenn der Benutzermanager erstellt wird.
Wenn Sie die Methode CreatePerOwinContext
innerhalb Ihrer Klasse OWIN Startup
verwenden, die eine Erweiterung in Microsoft.AspNet.Identity.Owin
ist, erstellt diese Erweiterung ein neues IdentityFactoryOption
-Objekt und übergibt es an das Func
der Parameter von CreatePerOwinContext
.
Sie können die Details von CreatePerOwinContext
in sehen Quellcode hier .
Beachten Sie, dass Sie, wenn Sie in Ihrer App über einen eigenen DI-Mechanismus verfügen, nicht die Methode CreatePerOwinContext
verwenden müssen und alle Objekte selbst erstellen müssen. Auf diese Weise brauchen Sie nicht einmal IdentityFactoryOptions
. Sie können einfach IUserStore
, DbContext
, IDataProtectionProvider
und alles, was Sie sonst noch brauchen, durch jede Art von DI, die Sie bevorzugen, injizieren.
Tags und Links asp.net-mvc c# asp.net-identity