RememberMe设置如何在MVC项目中使用WebSecurity

本文关键字:WebSecurity 项目 MVC 设置 RememberMe | 更新日期: 2023-09-27 18:26:26

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

这到底是怎么回事?persistCookie的值究竟保存在哪里?我查看了为Security特性创建的表,没有发现任何用户设置为持久登录的地方。

什么机制允许用户登录?这只是.ASPXAUTH cookie的存在吗?或者它真的将cookie值与我没有看到的东西进行了比较。

RememberMe设置如何在MVC项目中使用WebSecurity

这到底是怎么回事?

通过创建CCD_ 2。

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并检查网络流量以查看差异。

标识存储在cookie中,并在每次请求时解密。

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

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