我的应用程序正在执行电子邮件验证,向用户发送电子邮件。当用户单击链接时,将调用以下操作:
[AllowAnonymous]
public ActionResult RegisterConfirmation(string Id) //Id=ConfirmationToken
{
if (WebSecurity.ConfirmAccount(Id))
{
//get userId and perfom some operations related to it
return RedirectToAction("ConfirmationSuccess");
}
return RedirectToAction("ConfirmationFailure");
}
我的问题是:
如何使用ConfirmationToken获取userId?
我正在使用SimpleMembershipProvider
,我可以访问我的数据库上下文。
答案 0 :(得分:3)
该信息位于webpages_Membership表中,您可以使用SimpleMembership的上下文通过 context.Database.SqlQuery 直接查询该信息。
select UserId from webpages_Membership where ConfirmationToken = {0}
话虽如此,我建议不要在确认完成后自动登录此人,如果这是你的意图。如comments of this article中所讨论的那样,可能会导致一些安全问题。