Asp.net core 无法调用匿名身份验证为false的.NET Core 3.x REST API

Asp.net core 无法调用匿名身份验证为false的.NET Core 3.x REST API,asp.net-core,blazor-server-side,Asp.net Core,Blazor Server Side,我有两个.NETCore3.1应用程序:一个BlazorWeb页面服务器应用程序和一个RESTAPI。两者都在HTTP上。 在RESTAPI控制器中,我需要获取HttpContext.User.Identity.Name。 为此,我需要在RESTAPI中设置“windowsAuthentication”:true和“anonymousAuthentication”:false。如果我使用Postman,RESTAPI将按预期工作 我的问题是,一旦我设置了匿名身份验证:false,我的网页就不能再

我有两个.NETCore3.1应用程序:一个BlazorWeb页面服务器应用程序和一个RESTAPI。两者都在HTTP上。 在RESTAPI控制器中,我需要获取HttpContext.User.Identity.Name。 为此,我需要在RESTAPI中设置“windowsAuthentication”:true和“anonymousAuthentication”:false。如果我使用Postman,RESTAPI将按预期工作

我的问题是,一旦我设置了匿名身份验证:false,我的网页就不能再访问RESTAPI了。 如果我设置了anonymousAuthentication:true HttpContext.User.Identity.Name,则返回null,但网页可以调用REST API

我怀疑这是Cors的问题。我的web项目中有以下Cors代码:

    services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                    builder =>
                        builder
                        .AllowAnyHeader()                        
                        .AllowAnyMethod()
                        .AllowAnyOrigin());
            });

and
app.UseCors("CorsPolicy");

感谢您的帮助

我自己设法解决了这个问题。多亏了这篇文章

在调用RESTAPI之前,我添加了这个

var handler = new HttpClientHandler()
            {
                UseDefaultCredentials = false,
                Credentials = System.Net.CredentialCache.DefaultCredentials,
                AllowAutoRedirect = true
            };
            Http = new HttpClient(handler);
            Http.BaseAddress = new Uri("<API base URL>");

await Http.GetJsonAsync<....

var handler=new-HttpClientHandler()
{
UseDefaultCredentials=false,
凭据=System.Net.CredentialCache.DefaultCredentials,
AllowAutoRedirect=true
};
Http=新的HttpClient(处理程序);
Http.BaseAddress=新Uri(“”);
等待Http.GetJsonAsync