【问题标题】:How to access HttpContext from Blazor如何从 Blazor 访问 HttpContext
【发布时间】:2019-11-17 17:37:28
【问题描述】:

您好,我有一个应用程序,我在服务器端进行自定义身份验证。 现在我需要将此逻辑移植到 Blazor 客户端。我不知道如何访问 HttpContext 数据,例如:

HttpContext.Request.Host.Value
HttpContext.User.Identity.IsAuthenticated

还有如何使用扩展方法Microsoft.AspNetCore.Authentication.SignInAsync扩展方法。

如何从客户端获取HttpContext

【问题讨论】:

  • 哪种类型的 Blazor 应用程序?客户端还是服务器端?
  • 我对两者都感兴趣,因为我正在使用 Server-Side 进行调试,但在生产中它将是 Client-Side
  • 对于身份验证,客户端和服务器端完全不同。即使您可以在客户端获得上下文,您对它有什么期望?它可以作为 PWA 运行。
  • 对我来说在Session #6 上有完整的解释。在AuthenticationStateProvider 上使用声明是诀窍。要在两种托管模型中运行,只需为两种身份验证实现创建一个接口并使用 DI。

标签: authentication httpcontext blazor


【解决方案1】:

将 HttpContext 对象发送到客户端 Blazor 是个坏主意。 HttpContext Accessor 用于将 HttpContext 注入到无法直接访问 HttpContext 对象的类中。如果您仍想这样做,请参阅@Flores 的评论。

我不确定您要创建什么自定义身份验证系统,但我建议您先了解如何使用 Blazor 方式来创建。有关 Blazor 团队的示例,请参阅 @dani herrera 的评论。此示例还将让您了解应将哪些数据传递给客户端 Blazor。当然,您可以通过多种方式扩展此身份验证系统:Jwt 身份验证对于您扩展 Blazor 身份验证系统来说是一个很好的练习。

【讨论】:

    猜你喜欢
    • 2019-05-17
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    相关资源
    最近更新 更多