ASP .Net Core, Cors Host vs Origin



我是asp.net新手。当我想添加Cors时,有两个选项。HostOrigin.

它们之间的区别是什么?

builder.Services.AddCors(options =>
{
options.AddPolicy("AllowOrigin", builder =>
{
builder
.AllowAnyMethod()
.AllowAnyHeader()
.SetIsOriginAllowed(origin => true)
.AllowCredentials();
//or
builder
.AllowAnyMethod()
.AllowAnyHeader()
.SetIsOriginAllowed((host) => true)
.AllowCredentials();

});
});

这两个是相同的。SetIsOriginAllowed期望一个接受字符串并返回布尔值的函数。这两个都是这样。你可以调用参数"x"它还是原来的函数

这里的方法是.SetIsOriginAllowed(Func<bool,string>)

这是一个接受lambda和返回bool值的字符串形参的方法。如果你不熟悉lambdas,它们可以被认为是非常简洁的内联函数。

在您的问题中,hostorigin只是该字符串参数的不同名称,您可以将其称为TheSpanishInquisition,它仍然可以相同地工作。如果您实际上没有使用该参数,我建议使用_丢弃操作符,因此它将是:

builder
.AllowAnyMethod()
.AllowAnyHeader()
.SetIsOriginAllowed(_ => true)
.AllowCredentials();

不同的括号也无关紧要。如果只有一个参数,lambda参数周围的括号是可选的,但如果有多个参数,则必须使用括号。

您可以为参数指定任何您想要的名称。它们没有区别

最新更新