AddDefaultTokenProviders:它是什么以及如何使用这些“默认提供程序”?

2024-05-08

我在我的Startup.cs文件输入ConfigureServices在默认的 Visual Studio 2015 ASP.NET 5 项目中:

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

它到底有什么作用,以及如何使用这些“默认提供程序”?它是否为我配置所有基于令牌的身份验证?我在哪里可以阅读更多相关内容?


尽管名称如此,令牌提供程序与令牌身份验证无关:它们专门用于生成用于帐户操作(例如密码重置或电子邮件更改)和两因素身份验证的不透明令牌。

目前有 3 个内置提供程序:

  • DataProtectorTokenProvider https://github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNetCore.Identity/DataProtectionTokenProvider.cs:顾名思义,它使用数据保护块(相当于 ASP.NET Core 1.0 中的计算机密钥)来序列化加密令牌,稍后可以由服务器反序列化。

  • EmailTokenProvider https://github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNetCore.Identity/EmailTokenProvider.cs and PhoneNumberTokenProvider https://github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNetCore.Identity/PhoneNumberTokenProvider.cs:这些提供者源自TotpSecurityStampBasedTokenProvider https://github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNetCore.Identity/TotpSecurityStampBasedTokenProvider.cs,它实现了Time-based One-time Password Algorithm(TOTP),一种协议,旨在生成用户友好的短令牌,可以通过短信或电子邮件发送。

ASP.NET Core 1.0 不提供本机令牌身份验证支持(仅支持令牌验证:您无法生成自己的令牌)。您可以阅读这些 SO 帖子以获取更多信息:

  • ASP.NET Core 1.0 Web API 中的简单 JWT 身份验证 https://stackoverflow.com/a/35310717/542757.
  • ASP.NET 5 中的 Web API 身份验证 https://stackoverflow.com/a/30681843/542757.
  • 配置授权服务器端点 https://stackoverflow.com/a/30857524/542757.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AddDefaultTokenProviders:它是什么以及如何使用这些“默认提供程序”? 的相关文章

随机推荐