这个问题通常出现在使用反向代理服务器的情况下,因为从反向代理服务器发出的请求可能会更改HTTP标头和端口号。为了解决这个问题,可以通过在ASP.NET Core应用程序中设置ForwardedHeadersOptions来配置反向代理服务器。
以下是设置ForwardedHeadersOptions的示例代码:
services.Configure(options =>
{
options.ForwardedHeaders = ForwardedHeaders.All;
options.RequireHeaderSymmetry = false;
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
});
通过在Startup.cs文件的ConfigureServices方法中包含上面的代码,可以配置ForwardedHeadersOptions。
还需要在Configure方法中使用以下代码:
app.UseForwardedHeaders();
这样,ASP.NET Core应用程序将知道如何处理反向代理服务器发送的请求,User.Identity Claims将不再为空。