【发布时间】:2018-04-25 11:30:40
【问题描述】:
有时我看到 PHP 开发人员在他们的 cookie 中传递一个 Id,并在数据库中保存对该 cookie 的引用(这样他们就可以通过 cookie 对用户进行身份验证)。但在 ASP.Net Core 中,我从未见过。
ASP.Net Core 如何以及在何处知道此 cookie 归该用户所有?是否所有内容都存储在内存中(在某种对象中)?
如果是,这是否意味着如果我重新启动我的应用程序,用户应该再次登录?或者 ASP.Net Core 是否提供了任何方法来保留对 cookie 的引用,即使在重新启动应用程序后也是如此?
【问题讨论】:
-
cookie 存储在浏览器中。如果会话没有过期,你应该可以重复使用它。
-
@Nikolaus,是的,但是当在下一个请求中将该 cookie 发送回服务器时,服务器如何知道该 cookie 有效?如果用户现在被停用怎么办?或更改密码。如果保存在客户端并且在服务器端没有指向它的引用,服务器如何撤销该 cookie?
-
Cookie 包含加密形式的用户信息,因此它不同于您描述的 cookie 类型(仅存储指向用户信息的指针)。
-
@Evk,在这种情况下,如何重新启动应用程序并进行验证?如果我重新启动应用程序(服务器端),它们会丢失吗?如果服务器上没有存储任何内容,我该如何撤销这些 cookie(例如,如果我想停用用户)?
-
重新启动应用程序不应影响 cookie,因为内存中没有存储关于它们的任何内容。直到 cookie 过期 - 即使您禁用用户,它也将有效。您可以拦截 cookie 验证并进行更改 - 在此处阅读一种方法 - docs.microsoft.com/en-us/aspnet/core/security/authentication/…
标签: c# asp.net .net cookies asp.net-core