Blazor WebAssembly中Register组件无法覆盖<NotAuthorized>问题求助
Blazor WebAssembly:Register组件自定义不生效的解决办法
核心问题在于App.razor里的<NotAuthorized>是全局授权模板,组件内直接写该标签不会自动覆盖全局配置,得用AuthorizeView的局部模板来实现专属逻辑:
用
AuthorizeView包裹Register组件内容,在其内部定义专属<NotAuthorized>模板
这会让局部模板优先于全局配置生效,示例代码:@attribute [AllowAnonymous] <!-- 先确保页面允许匿名访问 --> <AuthorizeView> <Authorized> <p>您已登录,无需重复注册</p> </Authorized> <NotAuthorized> <!-- 这里写你的自定义未授权逻辑,比如注册表单 --> <h3>用户注册</h3> <form> <!-- 注册表单控件 --> </form> </NotAuthorized> </AuthorizeView>关键注意事项
<NotAuthorized>必须作为AuthorizeView的子标签存在,单独写不生效,因为它是AuthorizeView的内置模板参数- 组件顶部要加
[AllowAnonymous]特性,避免全局授权策略拦截这个需要开放给未授权用户的注册页面 - 路由级别的全局
<NotAuthorized>(App.razor里Router内部的配置)会被组件内的AuthorizeView模板覆盖,只影响当前组件的显示
内容的提问来源于stack exchange,提问作者Ahune ajé o ahe
相关产品推荐
相关产品推荐

