Asp.net core 无法调用匿名身份验证为false的.NET Core 3.x REST API
我有两个.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代码: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,我的网页就不能再
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