5

我希望将我的项目从 ASP.NET Web 窗体升级到 MVC 4。

在升级过程中,我试图重新评估我们处理身份验证和登录的方式。

目前,当用户尝试登录时,我(前端)调用数据库进行验证,然后返回为 yay 或 nay 并带有关联的“令牌”。然后,我必须将该令牌传递到我们网站上的下一页,然后将其放入 javascript 对象中。然后,每次调用 ajax 时都会传递该令牌,并在每次调用后使用新令牌进行更新。我个人在客户端浏览器中管理该令牌。

现在,在 MVC 4 中,默认的 Internet 应用程序带有使用某种形式的本地注册和登录所需的逻辑。但我不明白它是如何工作的。

在用户“注册”之后,它会存储在哪里?

当用户登录然后更改页面时,该用户如何保持登录状态?他的凭据如何传递?

在我看来,我们处理登录的当前方式已经严重过时且存在缺陷。但此时我不明白如何设置 MVC 来查看我们当前的(外部,它不在这个项目中)数据库来验证用户。

我有一本关于 MVC 4 的书,但似乎没有详细说明它是如何工作的。

任何帮助,将不胜感激。

谢谢!

4

2 回答 2

7

用户“注册”后存储在哪里

如果您使用 VS2012、ASP.NET MVC 4,它会将用户存储在LocalDB. 这是使用 new 的默认开箱即用实现Simple Membership Provider

当用户登录然后更改页面时,该用户如何保持登录状态?他的凭据如何传递?

当前经过身份验证的用户存储在加密的Forms Authenticationcookie 中。查看LogOn发出此 cookie 的 POST 操作。

于 2012-12-18T21:42:18.943 回答
3

我有一个类似的问题,你可以在这里看到我的帖子,但我找到并使用的解决方案来自这篇文章。它非常详细地介绍了新的 SimpleMembership 系统的工作原理。

最大的变化是您不再需要任何 aspnet_regsql 的东西了。注册后,将为用户创建数据库模式以及一行。无需 SP 或视图!

于 2012-12-18T21:41:15.973 回答