【问题标题】:Blazor component dynamic authorizationBlazor 组件动态授权
【发布时间】:2021-09-05 08:12:17
【问题描述】:

我正在尝试让 Blazor 身份验证为 Razor 页面/组件动态工作。 我将举例说明我正在努力实现的目标......

假设您有 2 个具有 2 个不同角色的用户: 用户 1 具有 user 角色 用户 2 具有 useradmin 角色

他们正试图通过/queue/user/queue/admin 访问同一个组件(/queue/{queueType:string})。 在我们的示例中,用户 1 将只能访问 /queue/user 而不能访问 /queue/admin 组件,但用户 2 将能够访问两者。

@page "/queue/{queueType:string}"
@attribute [Authorize(Roles = queueType)] <-- an object reference is required for queueType

【问题讨论】:

    标签: blazor


    【解决方案1】:

    您可以尝试以下方法,而不是这样做:

    @page "/queue/user"
    @page "/queue/admin"
    

    然后,当您定义 UI 元素时,您可以将它们包装在 &lt;AuthorizeView Roles="admin"&gt; 中,并为用户和管理员角色显示不同的内容。

    【讨论】:

    • 我不知道我可以多次使用@page。但这并不真正适合我的场景,因为大多数代码都是可重用的。 queueType 仅用于获取不同项目的 API 路由。我想我设法让它与 if (queueType == "admin") @attribute [Authorize(Roles = Admin)] 一起工作,但我会尝试更整洁的东西
    猜你喜欢
    • 2021-12-27
    • 2021-11-05
    • 2021-02-08
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    相关资源
    最近更新 更多