Asp.net

Identity 範例項目中的 DataProtectionProvider

  • September 5, 2014

官方 Identity 2 範例項目的程式碼如下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 上還有其他幾種實現(例如,出於安全目的使用機器密鑰的一種)。類 有關 DataProtectorTokenProvider 的更多資訊,請查看MSDN 文件

更新

現在提供了廣泛的數據保護文件。

引用自:https://stackoverflow.com/questions/25685252