AddDefaultTokenProviders: что это такое и как использовать эти "поставщики по умолчанию"?

Я нашел это в своем Startup.cs файле в ConfigureServices в проекте Visual Studio 2015 ASP.NET 5 по умолчанию:

services.AddIdentity<ApplicationUser, IdentityRole>()
                .AddEntityFrameworkStores<AuthorizationDbContext>()
                .AddDefaultTokenProviders();

Что он делает, и как использовать эти "поставщики по умолчанию"? Он настраивает для меня аутентификацию на основе токенов? Где я могу узнать больше об этом?

Ответ 1

Несмотря на свое имя, поставщики токенов не имеют ничего общего с токен-аутентификацией: они используются исключительно для создания непрозрачных токенов для операций с учетной записью (например, пароль reset или изменение электронной почты) и двухфакторной аутентификации.

В настоящее время существует 3 встроенных провайдера:

  • DataProtectorTokenProvider: как следует из названия, он использует блок защиты данных (эквивалент машинных клавиш в ASP.NET Core 1.0) для сериализации зашифрованных токенов, которые впоследствии могут быть десериализованы сервером.

  • EmailTokenProvider и PhoneNumberTokenProvider: эти провайдеры получены из TotpSecurityStampBasedTokenProvider, который реализует Time-based One-time Password Algorithm (TOTP), протокол, предназначенный для создания удобных и коротких токены, которые могут быть отправлены в SMS или в электронном письме.

ASP.NET Core 1.0 не поддерживает встроенную поддержку аутентификации маркеров (поддерживается только проверка токена: вы не можете создавать свои собственные токены). Вы можете прочитать эти сообщения SO для получения дополнительной информации: