如何在 Blazor 中使用带有自定义身份验证逻辑的 AuthorizeView 标签

How to use AuthorizeView tag with custom authentication logic in Blazor

我在 Blazor 服务器应用程序中有一个自定义身份验证系统,带有自定义数据库和一些逻辑。

我想受益于 razor 中的内置 AuthorizeView 标签。但是我不知道没有AspNetCore.Identity.

怎么用

现在我有一个全局 属性 bool IsAuthorized 来检查用户是否登录。 最重要的是,我在想也许我可以将 IsAuthorized 属性 绑定到 AuthorizeView 标签 Authorize 和 NotAuthorized。

我通读了 AuthorizeView 参考,但找不到哪个 属性 控制它的状态。

是否可以在自定义身份验证逻辑中使用 AuthorizeView,而无需内置“Identity”?

您需要创建自己的 AuthenticationStateProvider 并覆盖 GetAuthenticationStateAsync 方法。我不知道您的身份验证背后的逻辑,但也许您可以在该方法中从您的身份验证逻辑创建 ClaimsIdentity 和 ClaimsPrincipal 并设置身份验证状态。为了更好地理解它是如何工作的,这里有一个创建您自己的 AuthenticationStateProvider 并从 wasm 中的令牌获取 autstate 的示例:

https://chrissainty.com/securing-your-blazor-apps-authentication-with-clientside-blazor-using-webapi-aspnet-core-identity/