讲师中心 微信公众号
AI工具推荐 视频效率加速

Blazor 怎么配置授权和角色

小宇酱_6360

小宇酱_6360

发布时间:2026-01-07 11:53:50

|

349人浏览过

|

来源于php中文网

原创

Blazor授权核心是后端定义角色策略并确保角色写入Claims、前端用AuthorizeView/特性/代码控制访问。需验证JWT含roles声明,Azure AD配groupMembershipClaims,Identity用户须AddToRoleAsync绑定角色。

blazor 怎么配置授权和角色

Blazor 中配置授权和角色,核心是两件事:后端定义角色与策略、前端控制访问逻辑。关键不在“能不能做”,而在于前后端职责是否清晰、角色数据是否真正落地到 Claims 中。

后端:注册角色并注入授权策略

在 Program.cs(.NET 6+)中完成以下三步:

  • 启用 Identity 并添加角色支持:builder.Services.AddIdentityCore<identityuser>().AddRoles<identityrole>().AddEntityFrameworkStores<applicationdbcontext>();</applicationdbcontext></identityrole></identityuser>
  • 注册授权服务并定义角色策略,例如:
    builder.Services.AddAuthorization(options => {<br>
      options.AddPolicy("AdminOnly", p => p.RequireRole("Administrator"));<br>
      options.AddPolicy("EditorOrAdmin", p => p.RequireRole("Editor", "Administrator"));<br>
    });
  • 确保用户登录时,角色信息被写入 Claims —— 这通常由 SignInManager 自动完成;若用 JWT 或 Azure AD,则需确认 ID Token 或 Access Token 中包含 roles 声明,并在 TokenValidationParameters 中启用 MapInboundClaims = false(避免 ASP.NET Core 默认剥离 roles)。

前端:用三种方式控制可见性与访问

Blazor WebAssembly 或 Server 都适用,但注意:WASM 中的授权检查是客户端行为,仅用于 UX 层遮蔽,真实权限必须由 API 层二次校验。

精英前端设计-专业版
精英前端设计-专业版

企业级前端设计系统,支持多页面应用、React/Vue组件、品牌一致性与高级动效编排。

下载
  • 页面级控制:在 Razor 组件顶部加特性,如
    @page "/settings"<br>@attribute [Authorize(Roles = "Administrator")]
  • 组件级控制:用 <authorizeview></authorizeview> 包裹内容,支持 Roles、Policy 或自定义条件:
    <AuthorizeView Roles="Administrator,Editor"><br>  <Authorized><EditButton /></Authorized><br>  <NotAuthorized><p>无编辑权限</p></NotAuthorized><br></AuthorizeView>
  • 代码中动态判断:注入 AuthenticationStateProvider,调用 user.IsInRole("...") 或 AuthorizationService.AuthorizeAsync(...) 获取细粒度结果。

常见坑点与验证建议

很多问题不是配置错,而是没看到角色到底有没有传过来。

  • 检查浏览器开发者工具 → Application → Cookies 或 Local Storage 中的 token(WASM)或服务器响应头(Server),解码 JWT 确认 payload 含 "roles": ["Administrator"];
  • 若用 Azure AD,必须在应用注册的 “Manifest” 中设置 "groupMembershipClaims": "All" 或显式配置 App Roles 并在用户/组中分配;
  • 本地 Identity 用户需手动调用 UserManager.AddToRoleAsync(user, "Administrator"),不能只建 Role 不绑定;
  • Blazor Server 中,每次导航都走服务端授权,更安全;WASM 中,AuthorizeView 依赖客户端解析的 Claims,刷新页面后需重新拉取状态。

基本上就这些。角色本身不复杂,但容易忽略 Claims 是否真实存在、策略名是否拼写一致、以及前后端对“角色”理解是否统一。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

15006

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

1745

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

4177

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

6361

2024.03.01

cdn加速软件有哪些
cdn加速软件有哪些

CDN加速软件可以帮助网站提高内容访问速度和用户体验,降低服务器负载。在选择CDN加速软件时,需要根据实际需求和预算进行权衡,选择合适的软件和服务商。cdn加速软件有AWS CloudFront、Azure Content Delivery Network、Google Cloud CDN、Fastly、Cloudflare和Incapsula。

3827

2023.10.19

Golang WebAssembly(WASM)开发入门
Golang WebAssembly(WASM)开发入门

本专题系统讲解 Golang 在 WebAssembly(WASM)开发中的实践方法,涵盖 WASM 基础原理、Go 编译到 WASM 的流程、与 JavaScript 的交互方式、性能与体积优化,以及典型应用场景(如前端计算、跨平台模块)。帮助开发者掌握 Go 在新一代 Web 技术栈中的应用能力。

140

2026.02.02

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

2987

2023.10.09

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

2973

2023.10.16

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

20

2026.11.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn