我使用的是MVC 5默认模板,并选择了"个人帐户"进行身份验证。 它使用带有实体框架的ASP .NET Identity。
使用 Chrome,我打开了应用程序并注册了一个用户,然后使用该用户登录。我不小心删除了数据库。现在,当我在 Chrome 中再次打开该应用程序时,它仍然显示我已登录,因为身份验证 cookie 仍然存在于浏览器中。但是,数据库中不存在登录的用户。
这是正确的行为吗?
如果没有,那么关于如何预防它的任何建议?
正确的行为。只要身份验证 Cookie 有效且未过期,您的应用就会假定用户已经过身份验证。
禁用或(软)删除用户时,应调用UserManager.UpdateSecurityStamp(string userId)
,这会导致身份验证 cookie 在下次检查时无效。