簡體   English   中英

ASP.Net Core,Cors 主機與來源

[英]ASP .Net Core, Cors Host vs Origin

我是 ASP .NET 的新手。當我想添加 Cors 時,有 2 個選項。 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需要一個 function,它接受一個字符串並返回一個 boolean。這兩個 lambda 都這樣做。 您可以調用參數“x”,它仍然是相同的 function。

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

這是一種采用 lambda 和返回布爾值的字符串參數的方法。 如果您不熟悉 lambda,可以將它們視為非常簡潔的內聯函數。

在您的問題中, hostorigin只是該字符串參數的不同名稱,您可以將其TheSpanishInquisition並且它仍然可以相同地工作。 如果您實際上沒有使用該參數,我建議您使用_ discard 運算符,因此它將是:

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

不同的括號也無關緊要。 如果只有一個參數,則 lambda 參數周圍的括號是可選的,但如果有多個參數,則需要括號。

你可以給參數任何你想要的名字。它們沒有區別

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM