Remember Me设置如何在MVC项目中使用Web Security?

时间:2014-10-13 21:35:03

标签: c# asp.net asp.net-mvc security cookies

在示例/默认MVC 4项目中,我可以看到当用户使用Remember Me复选框登录时,WebSecurity.Login方法的persistCookie参数设置为true。

究竟是如何运作的? persistCookie的值究竟在哪里保存?我浏览了为安全性功能创建的表,但没有看到用户设置为持久登录的任何地方。

哪种机制可以让用户登录?它只是存在.ASPXAUTH cookie吗?或者它实际上是将cookie值与我没有看到的东西进行比较。

2 个答案:

答案 0 :(得分:4)

  

这究竟是如何运作的?

创建persistent cookie

  

保存persistCookie的值究竟在哪里?

作为客户端计算机上的文件,以便在浏览器重新启动后继续存在。

  

用户可以使用什么机制登录?

此机制称为persistent cookie。如果在设置时将Expires属性设置为将来某个日期,则cookie被视为持久性。在这种情况下,浏览器会将cookie作为文件存储在客户端计算机上,而不是将其保存在内存中。

以下是根据HTTP协议创建持久性cookie的示例:

Set-Cookie: CookieName=CookieValue;Path=/;Expires=Wed, 12-Oct-2016 21:47:09 GMT;

以下是设置会话cookie的方式,它不会在浏览器重启后继续存在:

Set-Cookie: CookieName=CookieValue;Path=/;

现在继续,下载Fiddler并检查网络流量以查看差异。

答案 1 :(得分:1)

身份存储在cookie中,并在每次请求时解密。

持久性cookie意味着cookie会在一段时间内自动附加到浏览器的请求中。

没有魔力,也无需在服务器端存储打开的会话。只要cookie正确解密,就会被接受,因为服务器假定没有人能够自己伪造cookie。这要求cookie值加密或至少签名。