Asp.net
Identity 範例項目中的 DataProtectionProvider
官方 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 文件。
更新
現在提供了廣泛的數據保護文件。