asp.net身份认证.net core 2.1
asp.net Identity authentication .net core 2.1
我遇到了一个 .net core 2.1 MVC 应用程序的问题,该应用程序在 Linux 机器上 运行 使用 nginx 网络服务器后面的 kestrel。此环境在负载均衡器后面有 2 个 Web 服务器。
问题是用于身份验证的 .AspNetCore.Identity.Application cookie。我能够进行身份验证并重定向到装饰有
的控制器
[Authorize]
属性(有时)。然而,在下一个请求中,cookie 消失了,我得到了 401。当我们从混合中取出一台服务器并将所有流量强制到一台服务器时,一切都按预期进行。
使用 Forms auth,可以通过指定机器密钥来解决同样的问题。使用身份的 .net 核心的等价物是什么?我发现了一些让我头疼的链接。他们提到做这样的事情:
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});
我不知道这是否会解决问题,我不想在不知道它们做什么的情况下尝试。
我怀疑你的经历与数据保护有关。
ASP.NET 核心cookie认证依赖于数据保护层对存储在cookie中的数据进行加密和解密。默认情况下,每台机器上都会创建一个本地密钥,这意味着它们无法解密另一台机器创建的 cookie,如 stated in the official documentation.
我建议您浏览 data protection configuration documentation page and evaluate your options. One of them is to store the keys on a UNC share and encrypt them with a certificate(本段中的所有 link link 到同一页面的不同部分)。
我遇到了一个 .net core 2.1 MVC 应用程序的问题,该应用程序在 Linux 机器上 运行 使用 nginx 网络服务器后面的 kestrel。此环境在负载均衡器后面有 2 个 Web 服务器。
问题是用于身份验证的 .AspNetCore.Identity.Application cookie。我能够进行身份验证并重定向到装饰有
的控制器[Authorize]
属性(有时)。然而,在下一个请求中,cookie 消失了,我得到了 401。当我们从混合中取出一台服务器并将所有流量强制到一台服务器时,一切都按预期进行。
使用 Forms auth,可以通过指定机器密钥来解决同样的问题。使用身份的 .net 核心的等价物是什么?我发现了一些让我头疼的链接。他们提到做这样的事情:
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});
我不知道这是否会解决问题,我不想在不知道它们做什么的情况下尝试。
我怀疑你的经历与数据保护有关。
ASP.NET 核心cookie认证依赖于数据保护层对存储在cookie中的数据进行加密和解密。默认情况下,每台机器上都会创建一个本地密钥,这意味着它们无法解密另一台机器创建的 cookie,如 stated in the official documentation.
我建议您浏览 data protection configuration documentation page and evaluate your options. One of them is to store the keys on a UNC share and encrypt them with a certificate(本段中的所有 link link 到同一页面的不同部分)。