asp.net Blazor WebAssembly + Identity Server -在成功验证后检索其他用户权限(声明?)

but5z9lq  于 2023-02-26  发布在  .NET
关注(0)|答案(1)|浏览(136)

我有两个独立的项目:
1.一个ASP.NET核心托管标识提供程序,它使用IdentityServer4和ASP.NET标识

  1. Blazor WebAssembly应用程序,使用Duende BFF与身份提供程序通信并登录用户
    两者都有自己独立的数据库。
    到目前为止,我已经能够让两者进行通信,以便Blazor应用程序在确认无人登录时自动重定向到身份提供程序。然后,用户可以登录到身份提供程序,他们将被重定向回Blazor应用程序,在那里显示他们的声明。
    Blazor应用程序将需要大量仅与此应用程序相关的用户权限。我打算在Blazor数据库中创建一个单独的用户详细信息表,然后在用户通过身份验证后引用这些权限。
    我很难弄明白的是:当身份提供商将用户及其相关声明返回Blazor时,我如何使用这些声明(特别是电子邮件地址声明)在我的Blazor用户详细信息数据库中查找该用户,以便获得他们的权限并将其存储在会话中?或者,我是否应该将这些额外信息存储为附加声明?
tez616oj

tez616oj1#

Blazor中的AddOpenIDConnect处理程序提供了各种可以挂钩的事件处理程序,特别是OnTokenValidated事件处理程序。
该处理程序是基于例如接收到的ID-token中的主题(子)声明查找本地用户信息的绝佳机会。
我认为这篇博客文章here提供了一个很好的介绍如何做到这一点。

相关问题