2013-04-29 121 views
2

我们有一个使用SimpleMembership的web应用程序,注册时发送确认邮件。现在,我希望用户在验证帐户时自动登录。.NET MVC 4注册后自动登录

我猜要走的路是让用户与确认相关的令牌,然后使用:

if (WebSecurity.UserExists(username)) 
{ 
    FormsAuthentication.SetAuthCookie(username, false); 
} 

的问题是,似乎没有要检索确认凭证的简单方法。 WebSecurity有一个函数Ge​​tUserIdFromPasswordResetToken(),但这并没有什么帮助。

回答

4

这是关于retrieving the confirmation token in SimpleMembership的文章。

但是在本文中检索确认标记的目的是为了向用户重新发送电子邮件。在确认过程之后,我会小心地自动记录此人,因为它可能会引入安全漏洞。这将允许任何持有链接电子邮件的人登录该帐户。出于安全原因,最好让用户在确认后使用其凭据登录。你会在comments for this article中看到这个问题。

+0

但是,如果我不关心电子邮件确认怎么办?我只想简单地设置用户在成功提交注册表单后立即登录。即使电子邮件无效。 – 2017-01-16 02:14:02

+0

使用电子邮件确认是可选的,您添加到模板提供的正常代码。当您调用CreateUserAndAccount时,请确保您将参数requireConfirmationToken设置为false。 – 2017-01-17 21:24:05