公式のIdentity2サンプルプロジェクトのコードは、以下のUserManager.Create()
にあります。
public static UserManager Create(IdentityFactoryOptions<UserManager> options, IOwinContext context) {
//...etc...
// --- what does this block do? ---
var dataProtectionProvider = options.DataProtectionProvider;
if (dataProtectionProvider != null) {
manager.UserTokenProvider = new DataProtectorTokenProvider<User>(dataProtectionProvider.Create("ASP.NET Identity"));
}
// --------------------------------
//...etc...
}
Alpha/beta/RTM Identityのドキュメントが不良であるか、存在しません。
これは何をしますか?
次の行の保護プロバイダーは、トークンプロバイダー/ジェネレーターとして使用されます。
manager.UserTokenProvider = new DataProtectorTokenProvider<User>(dataProtectionProvider.Create("ASP.NET Identity"));
電子メール確認トークンまたはパスワードリセットトークンを生成する責任があります。この行を設定しないと、この機能を使用できなくなります(適切な例外がスローされます)。例を見つけることができます ここ 。
その主な目的は、データを暗号化および復号化する IDataProtector インターフェイスの実装を(Createメソッドを介して)提供することです。フレームワークでのこのインターフェイスの実装はDpapiDataProtectionProviderであり、アプリケーションがASP.NETでホストされていない場合に使用する必要があります。 Webには他にもいくつかの実装があります(たとえば、セキュリティ目的でマシンキーを使用する実装)。 class DataProtectorTokenProviderの詳細については、 MSDNドキュメント を参照してください。
[〜#〜]更新[〜#〜]
広範な データ保護ドキュメント が利用可能になりました。