Clo*_*oud 8 c# asp.net asp.net-identity-2
我正在使用Identity 2.0框架进行用户管理.
不幸的是,在我的用例中,使用直接链接无法完成帐户激活/密码重置,因此用户必须从他的电子邮件中复制代码并将其粘贴到网站中.
由UserManager默认GenerateEmailConfirmationTokenAsync方法生成的代码非常长,它跨越大约3行文本.我试图覆盖此方法,生成更加用户友好的更短代码.这不起作用,因为该ConfirmEmailAsync方法总是返回"无效令牌"(此方法根本不调用该GenerateEmailConfirmationTokenAsync方法).
我不知道如何存储确认代码,我更喜欢使用Identity Framework的默认存储机制,而不是手动将其存储在数据库中.
由于Identity 2.0框架是封闭源代码,我不知道如何继续.是否可以生成自定义(更短)的确认码以及除了我已经做过的事情之外我应该覆盖哪些方法?
Chr*_*Fin 14
ASP.NET身份使用UserTokenProvider的UserManager生成和验证令牌.基本上它叫:
this.UserTokenProvider.GenerateAsync("Confirmation", this, tUser);
Run Code Online (Sandbox Code Playgroud)
生成令牌和
this.UserTokenProvider.ValidateAsync("Confirmation", token, this, tUser);
Run Code Online (Sandbox Code Playgroud)
验证它.
因此,您可以实现自己的IUserTokenProvider<TUser, TKey>或扩展默认值并将其设置为UserManager.UserTokenProvider.
| 归档时间: |
|
| 查看次数: |
6601 次 |
| 最近记录: |