![](/img/trans.png)
[英]I have problem using ReflectionIT.Mvc.Paging for pagination in my Asp.NET Core 2.2 project
[英]Problem with IsAuthenticated in ASP.NET Core 2.2 MVC
我在使用User.Identity.IsAuthenticated
遇到了特定问题。 如果我在 Chrome 中打开一个新选项卡并进入我的环境,例如: https://localhost:5001
,它会正常打开并将我重定向到主页(因为我已经登录)。
但是,如果我通过一个链接打开该站点,例如:我收到一个 email 并且它具有链接https://localhost:5001
,如果我单击链接我刚刚重定向到登录屏幕。
但是由于我已经登录,所以正确的方法是重定向到家,如果我按 f5,系统会将我重定向到家。
查看代码中的调试,在我的操作中,它说明User.Identity.IsAuthenticated = false
现在,当我按 f5 进行调试时,它返回 true
我的启动代码是这样的
services.ConfigureApplicationCookie(options =>
{
options.LoginPath = "/Security/Login";
options.LogoutPath = "/Security/Logout";
options.AccessDeniedPath = "/Security/AccessDenied";
options.SlidingExpiration = true;
options.ExpireTimeSpan = TimeSpan.FromDays(15);
options.Cookie = new CookieBuilder
{
HttpOnly = true,
Name = ".CustomName",
Path = "/",
SameSite = SameSiteMode.Strict,
SecurePolicy = CookieSecurePolicy.SameAsRequest,
Expiration = TimeSpan.FromDays(15)
};
});
如果您将 SameSite 设置为 Strict,您的 cookie 将仅在第一方上下文中发送。 在用户方面,只有当 cookie 的站点与浏览器的 URL 栏中当前显示的站点匹配时,才会发送 cookie。 当用户在您的站点上时,cookie 将按预期随请求一起发送。 但是,当通过链接进入您的站点时,例如从另一个站点或通过朋友的 email,在初始请求中不会发送 cookie。
请改用SameSiteMode.Lax
。 这将让浏览器包含一个身份验证 cookie,其中包含来自不同来源(如邮件)的链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.