blazor.net和HttpClient发送凭据

时间:2018-07-02 01:36:02

标签: dotnet-httpclient blazor

我有一个托管在IIS上的api,我试图通过Blazor.Net客户端应用程序使用示例中提供的HttpClient进行调用。

由于api终结点托管在使用Windows身份验证的IIS上,因此在进行调用时我需要包括凭据。

我尝试创建httpClient的实例,而不使用示例中提供的静态方法,但是我收到了 PlatformNotSupported exception

是否可以使用HttpClient中使用的静态Blazor.net传递凭据?

如果我将JavaScript互操作与XMLHttpRequest一起使用并将withCredentials设置为true,则api返回数据。但是我宁愿不使用js来获取数据,而是使用C#。

谢谢

2 个答案:

答案 0 :(得分:0)

我相信您的解决方案应该属于此类: Microsoft.AspNetCore.Blazor.Browser.Http.BrowserHttpMessageHandler

答案 1 :(得分:0)

通常,浏览器应注意这一点,这就是为什么您需要与Windows身份验证兼容的浏览器的原因。有关Windows身份验证如何与浏览器交互的说明,请参见here

因此,如果默认情况下不起作用,我想Blazor / Mono还不支持此功能。但是,您可以在blazor的http调用中包含自己的授权标头。我有一个示例here的示例(对于jwt令牌)。因此,如果您能够以某种方式从某个地方获取Windows令牌,则可以尝试。