我对使用托管的Blazor WebAssembly ASP.NET Core在Web应用程序中进行身份验证有疑问。使用的数据库是Azure SQL。
我想避免在数据库中存储密码,因此用户只能使用Microsoft帐户(与项目有关)。
截至目前,用户使用Azure AD作为第三方身份验证提供程序登录。重定向回Web应用程序后,将创建一个用户,该用户的声明仅包含来自Azure的电子邮件。将用户定向到注册页面,在该页面中,电子邮件输入设置为当前的用户声明电子邮件。当用户单击注册按钮时,提供的信息现在存储在数据库中。
问题是我现在在数据库中有一个用户,但是声明仍然只是电子邮件。我希望能够在不同页面上使用AuthorizeView role
标记,因此想知道是否可以使用用户在注册页面中指定的角色来更新声明?此时,此数据仅存储在数据库中。
如果这是一个不好的做法,我还有其他类似的方法可以使它起作用吗?
文档Secure an ASP.NET Core Blazor WebAssembly standalone app with Azure Active Directory说明如何从Azure AD请求范围