Blazor 服务器应用程序具有单点登录和每个“页面”不同的用户角色

问题描述 投票:0回答:1

我正在构建一个 Blazor 服务器应用程序,该应用程序具有已使用表/字段建立的数据库。该数据库具有以下表:用户、组、角色、站点地图以及它们之间的关联表,以允许用户在每个表中拥有多个条目。该应用程序从 SSO 实例获取用户的 ID,然后从那里访问数据库以相应地显示导航,当用户转到每个“页面”时,它将允许用户(基于其角色/组)查看或执行操作相应的事情。我是 Blazor Server 的新手,但更重要的是,我使用 SSO 和必须容纳的数据库从头开始构建应用程序。关于如何进行此设置有什么建议吗?

authorization single-sign-on .net-6.0 blazor-server-side user-roles
1个回答
0
投票

我知道您可以使用 azure AD 凭据登录来设置 blazor 服务器应用程序。

有一种方法可以将其转换为代币。

但是你的问题完全不同。

您应该从实现 DbContextFactory 开始,它将创建您的数据库并通过 DI 将其插入到您的容器中。

您可以使用 .NET 自动创建数据库上下文以及数据表类。非常酷。

将 Blazor Server 应用与 SSO 提供商集成。这通常涉及设置 OpenID Connect 或 OAuth 身份验证。 您可以使用 ASP.NET Core Identity 进行用户管理,或者将其调整为与现有的用户、组和角色表一起使用(如果它们尚未使用 Identity)。

根据用户的角色和组实施基于角色的授权或任何自定义授权逻辑。 Blazor Server 具有内置的 AuthorizeView 组件,允许您根据用户角色显示/隐藏内容。

创建一个导航菜单,根据用户的角色和权限动态加载项目。 考虑使用 Blazor 组件和布局来构建一致的用户界面。看在上帝的份上,请尽可能使用 blazors 的酷功能来创建可重用的组件

实现您的应用程序所需的任何业务逻辑。这包括处理用户交互、处理数据和执行业务规则。

对于我来说,在测试中我主要将 b 单元与 moq 库结合使用 - 这非常灵活。

如果您在实现任何组件或逻辑方面需要任何帮助,请告诉我。很高兴能提供帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.