【问题标题】:SimpleMembership - WebSecurity GetConfirmationToken ProblemsSimpleMembership - WebSecurity GetConfirmationToken 问题
【发布时间】:2015-01-01 00:37:14
【问题描述】:

我正在构建一个接近完成的应用程序,我正在添加最后一层安全性和功能,以便在新用户注册时通过电子邮件发送确认令牌。获取初始注册确认令牌很容易。令牌被传递给视图并发送一封电子邮件。但是,有两种情况我需要重新发送该令牌,它们是:

  • 当用户被重定向到名为“第二步注册”的视图时。
  • 当用户在确认其帐户之前尝试登录时。

第一个场景在页面上有一个按钮,可以很容易地嵌入令牌,这是一项简单的任务。但是,登录页面不会有这个功能,服务器只会知道用户的电子邮件地址。遵循DRY 原则,我将其合并为一种方法,但是虽然我可以获得用户注册的电子邮件地址,但我找不到合适的WebSecurityMembership 调用来获取确认令牌。

我尝试使用下面的表达式从成员资格表中请求这个,但是抛出了一个异常,指出 LastPasswordFailureDatenull(这是意料之中的),所以这是不可能的。

Expression<Func<MembershipModel, bool>> query = q => q.UserId == userId;

我查看了类似于 Kevin Junghans(下)的博客,但是 WebSecurity.GetConfirmationToken 似乎不再受支持,因为我无法在任何地方找到它。

Retrieving Confirmation Token

我什至看过下一个链接,它指向 StackOverflow 上的一个问题,老实说,我不想在这个庄园中实现它,因为我已经花费了大量时间来整合 EntityFramework 存储库模式为我做这一切。

Resend Confirmation Email with WebSecurity

我想知道是否有人对无需在应用程序本身编写 SQL 的情况下获取确认令牌有任何建议。

【问题讨论】:

    标签: c# asp.net-mvc entity-framework security simplemembership


    【解决方案1】:

    今天早上想了很多,我终于意识到为什么LastPasswordFailureDate 会返回提到的Exception。本质上,我相信我是个白痴,忘记在我的模型中添加nullableDateTime 字段的引用。我无法在几个小时内测试此修复,但会在任一事件中更新此答案/问题。

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 2013-04-27
      • 2012-12-21
      • 2014-11-29
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 2019-12-24
      • 2012-09-12
      相关资源
      最近更新 更多