从Blazor发出CORS请求时,如何包括凭证?

时间:2019-08-01 06:40:19

标签: asp.net-core cors blazor

在出色的客户端应用程序上,相当于jQuery ajax WithCredentials或JavaScript credentials: 'include'是什么?

使用Java语言,我可以说:

fetch('https://www.example.com/api/test', {
   credentials: 'include'
});

在发出请求时包含身份验证cookie,服务器响应为200。我正在尝试使用HttpClient用Blazor编写相同内容。

1 个答案:

答案 0 :(得分:0)

在Startup.Configure方法中,您可以将WebAssemblyHttpMessageHandler.DefaultCredentials设置为出站HTTP请求上'credentials'选项的必需值,如下所示:

public void Configure(IComponentsApplicationBuilder app)
        {
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Create("WEBASSEMBLY")))
            {

                WebAssemblyHttpMessageHandler.DefaultCredentials = FetchCredentialsOption.Include;
            }

            app.AddComponent<App>("app");
        }

参考: https://github.com/aspnet/AspNetCore/blob/c39fbb8f12002f61df6c093b0c11e6bd585ee202/src/Components/Blazor/Blazor/src/Http/WebAssemblyHttpMessageHandler.cs

https://github.com/aspnet/AspNetCore/blob/5a70f5312fb57fc3788e5af56a99e7b43761e195/src/Components/Blazor/Blazor/src/Http/FetchCredentialsOption.cs

https://github.com/aspnet/AspNetCore/blob/d18a033b1ee6d923a72d440718c5d496b57c2ffc/src/Components/test/testassets/BasicTestApp/Startup.cs

希望这对您有帮助...