0

我有一个关于使用托管的 Blazor WebAssembly ASP.NET Core 在我的 Web 应用程序中进行身份验证的问题。使用的数据库是 Azure SQL。

我想避免在数据库中存储密码,因此用户仅限于拥有 Microsoft 帐户(与项目相关)。

截至目前,用户使用 Azure AD 作为第三方身份验证提供程序登录。当重定向回 Web 应用程序时,会使用仅包含来自 Azure 的电子邮件的声明创建用户。用户被定向到注册页面,其中电子邮件输入设置为当前用户声明电子邮件。当用户单击注册按钮时,提供的信息现在存储在数据库中。

问题是我现在在数据库中有一个用户,但声明仍然只是电子邮件。我希望能够AuthorizeView role在不同页面上使用标签,因此想知道是否可以使用用户在注册页面中指定的角色来更新声明?该数据此时仅存储在数据库中。

如果这是一种不好的做法,还有其他类似的方法可以使这项工作吗?

4

1 回答 1

0

要使用AuthorizeView role,角色声明应由您的身份提供者(在您的情况下为 Azure AD)返回。您的应用程序应该通过询问相应的范围来询问这些声明。
根据文档:Microsoft 身份平台端点中的权限和同意配置文件范围应返回角色声明。

文档使用 Azure Active Directory 保护 ASP.NET Core Blazor WebAssembly 独立应用程序解释了如何从 Azure AD 请求范围

于 2020-04-14T13:20:04.157 回答