【问题标题】:Custom email confirmation token自定义电子邮件确认令牌
【发布时间】:2014-09-19 13:46:34
【问题描述】:

我正在使用 Identity 2.0 框架进行用户管理。
不幸的是,在我的用例中,无法使用直接链接完成帐户激活/密码重置,因此用户必须从他的电子邮件中复制代码并将其粘贴到网站中。

UserManager 的默认GenerateEmailConfirmationTokenAsync 方法生成的代码很长,大约有 3 行文本。 我试图覆盖这个方法,生成更短的代码,对用户更友好。这不起作用,因为ConfirmEmailAsync 方法总是返回“无效令牌”(此方法根本不调用GenerateEmailConfirmationTokenAsync 方法)。

我不知道确认码是如何存储的,我更喜欢使用 Identity Framework 的默认存储机制,而不是手动将其存储在数据库中。

由于 Identity 2.0 框架是封闭源代码,我不知道如何进行。是否可以生成自定义(较短的)确认码,除了我已经做过的之外,我还应该覆盖哪些方法?

【问题讨论】:

    标签: c# asp.net asp.net-identity-2


    【解决方案1】:

    ASP.NET 标识使用UserManager 的UserTokenProvider 来生成和验证令牌。基本上它调用:

    this.UserTokenProvider.GenerateAsync("Confirmation", this, tUser);
    

    生成令牌和

    this.UserTokenProvider.ValidateAsync("Confirmation", token, this, tUser);
    

    进行验证。

    因此您可以实现自己的IUserTokenProvider<TUser, TKey> 或扩展默认设置并将其设置为UserManager.UserTokenProvider。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-03
      • 2015-10-08
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      • 2018-03-19
      • 2015-01-06
      • 1970-01-01
      相关资源
      最近更新 更多