我有这个项目,它有登录、注销和注册。此处包含隐私页面,仅供登录用户访问。这是我用来测试用户授权的 4 个场景。
1-我点击隐私页面,即使不登录也可以访问它。[否定结果]
2- 我登录并注销,然后尝试进入隐私页面,但无法访问它。 [阳性结果]
3-我登录并注销,然后关闭网站,然后再次运行程序。然后尝试访问隐私页面,我无法访问。 [阳性结果]
4-我登录然后关闭网站,然后再次运行程序,尝试访问隐私页面(它显示我已退出)并且我可以访问它。 [阴性结果]。
请参阅我的另一个问题以获取相关代码片段(请务必检查底部更新的 Startup.cs 文件)授权在 ASP.NET Core MVC 中无法正常工作
在cookie身份验证中,当您使用
SignInAsync
登录时,它会在您的网站域中生成一个cookie,并存储在浏览器中。只要你有这个cookie,你就处于登录状态。你可以在浏览器F12中看到这个cookie。(标签可能根据浏览器不同而不同。)
当您执行
SignOutAsync
时,您将删除此 cookie。现在你的要求基本上是在关闭浏览器时删除这个cookie。只需在 authProperties 中设置 IsPersistant=False
即可让 cookie 在会话结束(浏览器关闭)时被删除。
var authProperties = new AuthenticationProperties
{
IsPersistent = false,
};