小编Tjo*_*sta的帖子

对如何在 Blazor App 中从 B2C 获取访问令牌感到困惑

我有一个配置了 B2C 身份验证的 Blazor 服务器端应用程序。这个应用程序将调用一个 webapi 来与我的服务进行任何数据交换。B2C 身份验证工作正常,直接从模板配置 B2C 身份验证是:

services.AddAuthentication(AzureADB2CDefaults.AuthenticationScheme)
            .AddAzureADB2C(options => { Configuration.Bind("AzureAdB2C", options); });
Run Code Online (Sandbox Code Playgroud)

这些声明只有我从我的登录策略返回的声明,没有任何我可以用来代表我的 Web api 进行身份验证的访问令牌(也用同一个 B2C 租户保护)。

我已经阅读了大约 100 个不同的文档,但在 blazor 的上下文中似乎没有任何意义。有没有人以前做过这件事可以说明一些问题?

一等奖是在用户第一次向 B2C 进行身份验证后请求访问令牌,然后将令牌保存在缓存中,以便在会话/浏览器打开或访问令牌有效时在 blazor 应用程序中用于任何 api 调用。

似乎这是正确的路径:https : //github.com/Azure-Samples/active-directory-b2c-dotnet-webapp-and-webapi/blob/master/TaskWebApp/Controllers/TasksController.cs但我什么我不明白的是:

  • 这是 Blazor 的正确方法吗?
  • 如何触发它以获取用户身份验证请求的访问令牌。我不清楚如何覆盖 B2C 身份验证构造函数。
  • 我可以在当前用户的声明中添加访问和刷新令牌,以便我可以在我的应用程序中全局使用 httpcontext 对象来获取执行我的 api 调用所需的令牌吗?
  • 上面文档中的代码当然在控制器中。希望将这种形式作为用户身份验证流程的一部分。
  • 似乎 B2C 身份验证的配置现在非常模板化......例如,我在哪里可以自定义身份验证的路由?我宁愿将用户定向到 /auth 或 /login 而不是 /AzureB2C/Login(为了掩盖明显的身份验证提供程序 url。我知道它会在地址栏中显示给用户......但是嘿......任何将非常感谢帮助将具体说明如何在 Blazor 服务器端处理此问题。

谢谢!

azure azure-ad-b2c blazor blazor-server-side

10
推荐指数
2
解决办法
2562
查看次数

Blazor - 可以在后面的代码中导航吗?

是否可以在后面的代码中使用导航管理器导航?我有一个全局助手类,如果全局函数失败,我需要将其重定向到特定页面。这可能吗?我不太明白您是否能够在后面的代码中在 NavagationManager 上创建一个实例。或者如果这是可能的,我应该使用依赖注入来调用 naigationmanager 吗?

谢谢!

core blazor

2
推荐指数
1
解决办法
1588
查看次数

Blazor,editform 中的模型更改事件

我有一个表,其中的控件绑定到模型,当其中一些控件的值发生变化时,我需要调用一个函数。(重新计算总额和税金)

该表处于编辑表单中,并且控件绑定到模型,因此我无法在控件中使用onchange事件。

我尝试过的:

  • 使用 SetParametersAsync 或 OnParametersSetAsync 函数,但它仅在第一次设置模型时触发,而不是像我预期的那样在模型中属性的每次更改时触发。
  • 尝试使用模型的 set 访问器,但是这样做并在调试中运行浏览器崩溃,并且在我的调试控制台中出现没有上下文的访问冲突错误:

    私人订单 order { 获取 { 返回订单; } 设置 { 顺序 = 值; 计算总计(); } }

程序“[11992] iisexpress.exe:Program Trace”已退​​出,代码为 0 (0x0)。程序“[11992] iisexpress.exe”已退出,代码为-1073741819 (0xc0000005)“访问冲突”。

有人有什么想法吗?

blazor

1
推荐指数
1
解决办法
5721
查看次数

标签 统计

blazor ×3

azure ×1

azure-ad-b2c ×1

blazor-server-side ×1

core ×1