我有一个配置了 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但我什么我不明白的是:
谢谢!
是否可以在后面的代码中使用导航管理器导航?我有一个全局助手类,如果全局函数失败,我需要将其重定向到特定页面。这可能吗?我不太明白您是否能够在后面的代码中在 NavagationManager 上创建一个实例。或者如果这是可能的,我应该使用依赖注入来调用 naigationmanager 吗?
谢谢!
我有一个表,其中的控件绑定到模型,当其中一些控件的值发生变化时,我需要调用一个函数。(重新计算总额和税金)
该表处于编辑表单中,并且控件绑定到模型,因此我无法在控件中使用onchange事件。
我尝试过的:
尝试使用模型的 set 访问器,但是这样做并在调试中运行浏览器崩溃,并且在我的调试控制台中出现没有上下文的访问冲突错误:
私人订单 order { 获取 { 返回订单; } 设置 { 顺序 = 值; 计算总计(); } }
程序“[11992] iisexpress.exe:Program Trace”已退出,代码为 0 (0x0)。程序“[11992] iisexpress.exe”已退出,代码为-1073741819 (0xc0000005)“访问冲突”。
有人有什么想法吗?