这个要求发布在SO的其他地方,但答案包含IUserTokenProvider,我在核心2.1中找不到 asp.net。
如何实现电子邮件确认例程,其中用户不单击链接,但收到一个可以安全地用于确认电子邮件地址的短令牌(6 个字符)。
配置 Identity 时,可以传入一组选项,其中包括用于各种方案的令牌提供程序。有一个从TotpSecurityStampBasedTokenProvider<TUser>
继承的内置EmailTokenProvider<TUser>
。你可以使用它。它实际上已经通过调用AddDefaultTokenProviders()
注册,AddIdentity<TUser, TRole>
和AddDefaultIdentity<TUser>
方法在内部调用。因此,您只需使用TokenOptions.DefaultEmailProvider
将其设置为该提供程序:
services.AddDefaultIdentity<IdentityUser>(o => {
// other options: password reqs, username reqs, etc.
o.Tokens.EmailConfirmationTokenProvider = TokenOptions.DefaultEmailProvider;
});