[英]ASP.NET Core Identity not saving cookie in browser
我现在已经搜索了几个小时的解决方案......所以我们在这里 go。 我有 3 个应用程序: 1:API - 在这里我们有身份验证 2:管理员客户端 - 效果很好 2:用户客户端 - 能够登录并获得身份验证......但是在每次请求时,我都会再次获得登录屏幕,就像我没有已通过身份验证(我登录时已通过身份验证)。 此应用程序不会将 cookie 保存到浏览器(管理员会)
Program.cs 中的客户端代码(这是 .net6)在 Admin 和 User 应用程序中是相同的。 唯一的区别是 cookie 名称
var _authenticationSettings = _serviceProvider.GetService<IAuthenticationSettings>();
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddCookie(JwtBearerDefaults.AuthenticationScheme,
options => {
options.LoginPath = _authenticationSettings.LoginPath;
options.AccessDeniedPath = _authenticationSettings.AccessDeniedPath;
options.Events = new CookieAuthenticationEvents
{
// Check if JWT needs refreshment
OnValidatePrincipal = RefreshTokenMonitor.ValidateAsync
};
options.Cookie.Name = "MainAppCookie";
}
);
我在其他项目中使用过这种方法,它的工作原理应该是……唯一的区别是它是一个 .net5 IIS 项目……现在我在 Kestrel 上运行了 .net6
知道我在这里做错了什么......
cookie被创建:
使用这个值(不知道在哪里可以找到 cookie 中的值..
即使我将 ExpireTimeSpan 设置为 60 分钟,cookie 的有效期也是 30 分钟
当我登录到 MainApp 客户端时,这里有 cookie 状态。 上面你可以看到 AdminApp cookie(之前在那里登录过)
在这里,您在登录时也有 AdminApp cookie 状态..
我必须承认……这真的很奇怪
好的,经过数小时的故障排除后,我终于找到了错误。 链接中出现错误...不是在调用 URL,而是在调用方法:(
<a href="@_manager.LogOut()" class="menu-link px-5">@_localizer["SIGN_OUT"]</a>
应该:
<a href="@Url.Action("LogOut", "Account")" class="menu-link px-5">@_localizer["SIGN_OUT"]</a>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.