【问题标题】:NetworkCredential in BlazorBlazor 中的网络凭据
【发布时间】:2020-05-26 21:21:48
【问题描述】:

在 WASM Blazor 应用程序中,我通过在顶部执行此操作来注入 Http 客户端:

@inject HttpClient Http

现在我希望能够像在常规 .NET 中一样设置用户名和密码,你可以这样做:

handler.Credentials = new NetworkCredential(userName, password);

但是,我找不到可以设置凭据的Http 的任何属性,我该如何设置?

【问题讨论】:

  • 我正在构建的应用程序是一个内部工具,它的配置将在页面加载时下载,包括凭据。
  • 嗯,使用 Jwt 将涉及更改 API 服务。 Blazor HttpClient 似乎不支持网络凭据,而且我看不到设置标头的简单方法。

标签: c# .net http .net-core blazor


【解决方案1】:

不清楚您做了什么,因为您几乎没有提供任何代码来证明您的问题。但是,很清楚你在努力什么。

为了在 Blazor WebAssembly 应用程序中对用户进行身份验证和授权,您可以使用 Jwt 身份验证或 OpenID 连接将用户的凭据传递到 Web Api 端点来验证用户、创建 Jwt 令牌并将其传递回前端最后,您可以将 Jwt Token 存储在本地存储中,并在用户登录、访问各种资源等时检索它。

还要注意,HttpClient 并不是真正的 HttpClient。它基于 JavaScript Fetch Api,缺少 WebSockets 等功能。

我已经在本节中发布了有关如何使用 Jwt 身份验证和 OpenID 连接的答案。您必须搜索那些处理 Jwt 身份验证的答案,因为那是很久以前的事了,我不记得它们的位置。但是,这里是Adding OpenID Connect to IdentityServer4Accessing token from Blazor 的链接

希望这会有所帮助...

【讨论】:

  • 似乎我需要在 Blazor 中使用摘要身份验证,那是不可能的吗?用户名和密码可能在我的客户端中硬编码和/或通过配置文件下载。
  • 我认为您不能在 WebAssembly Blazor 应用程序上使用 Digest 身份验证。但是您可以按照我在回答中的建议创建一个 Web Api 并使用 Jwt 身份验证或 OpenID Connect。
猜你喜欢
  • 1970-01-01
  • 2012-05-04
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多