【发布时间】:2015-01-01 00:37:14
【问题描述】:
我正在构建一个接近完成的应用程序,我正在添加最后一层安全性和功能,以便在新用户注册时通过电子邮件发送确认令牌。获取初始注册确认令牌很容易。令牌被传递给视图并发送一封电子邮件。但是,有两种情况我需要重新发送该令牌,它们是:
- 当用户被重定向到名为“第二步注册”的视图时。
- 当用户在确认其帐户之前尝试登录时。
第一个场景在页面上有一个按钮,可以很容易地嵌入令牌,这是一项简单的任务。但是,登录页面不会有这个功能,服务器只会知道用户的电子邮件地址。遵循DRY 原则,我将其合并为一种方法,但是虽然我可以获得用户注册的电子邮件地址,但我找不到合适的WebSecurity 或Membership 调用来获取确认令牌。
我尝试使用下面的表达式从成员资格表中请求这个,但是抛出了一个异常,指出 LastPasswordFailureDate 是 null(这是意料之中的),所以这是不可能的。
Expression<Func<MembershipModel, bool>> query = q => q.UserId == userId;
我查看了类似于 Kevin Junghans(下)的博客,但是 WebSecurity.GetConfirmationToken 似乎不再受支持,因为我无法在任何地方找到它。
我什至看过下一个链接,它指向 StackOverflow 上的一个问题,老实说,我不想在这个庄园中实现它,因为我已经花费了大量时间来整合 EntityFramework 存储库模式为我做这一切。
Resend Confirmation Email with WebSecurity
我想知道是否有人对无需在应用程序本身编写 SQL 的情况下获取确认令牌有任何建议。
【问题讨论】:
标签: c# asp.net-mvc entity-framework security simplemembership