授权无法完全正常工作 ASP.NET Core MVC

问题描述 投票:0回答:1

我有这个项目,它有登录、注销和注册。此处包含隐私页面,仅供登录用户访问。这是我用来测试用户授权的 4 个场景。

1-我点击隐私页面,即使不登录也可以访问它。[否定结果]

2- 我登录并注销,然后尝试进入隐私页面,但无法访问它。 [阳性结果]

3-我登录并注销,然后关闭网站,然后再次运行程序。然后尝试访问隐私页面,我无法访问。 [阳性结果]

4-我登录然后关闭网站,然后再次运行程序,尝试访问隐私页面(它显示我已退出)并且我可以访问它。 [阴性结果]。

请参阅我的另一个问题以获取相关代码片段(请务必检查底部更新的 Startup.cs 文件)授权在 ASP.NET Core MVC 中无法正常工作

asp.net-core cookies asp.net-core-mvc authorization
1个回答
0
投票

在cookie身份验证中,当您使用

SignInAsync
登录时,它会在您的网站域中生成一个cookie,并存储在浏览器中。只要你有这个cookie,你就处于登录状态。你可以在浏览器F12中看到这个cookie。(标签可能根据浏览器不同而不同。)

当您执行

SignOutAsync
时,您将删除此 cookie。现在你的要求基本上是在关闭浏览器时删除这个cookie。只需在 authProperties 中设置
IsPersistant=False
即可让 cookie 在会话结束(浏览器关闭)时被删除。

                var authProperties = new AuthenticationProperties
                {             
                    IsPersistent = false,
                };

参考:https://learn.microsoft.com/en-us/aspnet/core/security/authentication/cookie?view=aspnetcore-3.1#create-an-authentication-cookie-1

© www.soinside.com 2019 - 2024. All rights reserved.