繁体   English   中英

asp.net身份验证.net core 2.1

[英]asp.net Identity authentication .net core 2.1

我遇到了一个.net核心2.1 MVC应用程序的问题,该应用程序在nginx Web服务器后面使用茶rel的Linux机器上运行。 该环境在负载均衡器后面有2个Web服务器。

问题是用于身份验证的.AspNetCore.Identity.Application cookie。 我能够进行身份验证并将其重定向到装饰有

[授权]

属性(有时)。 但是,在下一个请求中,cookie消失了,我得到了401。当我们从一台服务器中取出一台服务器并将所有流量强制发送到一台服务器时,一切都会按预期进行。

使用Forms auth,可以通过指定机器密钥来解决相同的问题。 .net核心使用身份的等效性是什么? 我发现一些链接不胜枚举。 他们提到这样做:

 services.Configure<ForwardedHeadersOptions>(options =>
 {
     options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
 });

我不知道这是否可以解决问题,并且我不想尝试某些事情而不知道它们在做什么。

我怀疑您的经验与数据保护有关。

ASP.NET Core cookie身份验证依赖于数据保护层来加密和解密cookie中存储的数据。 默认情况下,每台计算机上都会创建一个本地密钥,这意味着它们不能解密由另一台计算机创建的cookie,如官方文档中所述

我建议您浏览数据保护配置文档页面并评估您的选项。 其中之一是将密钥存储在UNC共享上并使用证书对它们进行加密 (本段中的所有链接都链接到同一页面的不同部分)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM