编辑
2024-01-10
Csharp/dotNet
0
请注意,本文编写于 317 天前,最后修改于 317 天前,其中某些信息可能已经过时。

目录

JWT授权备忘

使用 RequireClaim 方法来要求用户的 userType 声明必须为 "system",即只有带有 "system" 用户类型声明的用户才能访问该授权策略

JWT授权备忘

  • 生成token

注意演示用的 Claim

c#
public string GenerateJwtToken(string userId, string userType) { var claims = new List<Claim> { new Claim("userId", userId), new Claim("userType", userType) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("your_secret_key")); var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken( claims: claims, expires: DateTime.UtcNow.AddHours(1), signingCredentials: credentials ); return new JwtSecurityTokenHandler().WriteToken(token); }

产生token

var systemUserToken = GenerateJwtToken(systemUserId, "system"); var regularUserToken = GenerateJwtToken(regularUserId, "regular"); ``` 离开了一线自己创业,有些东西会随着时间的推移遗忘,避免用到的时候发挥时间找资料,弄个白痴都能看懂的备忘录 - 接口定义授权策略 ` [Authorize(Policy = "SystemUserOnly")] ` - 配置 ```c# public void ConfigureServices(IServiceCollection services) { // 添加授权策略 services.AddAuthorization(options => { options.AddPolicy("SystemUserOnly", policy => { policy.RequireClaim("userType", "system"); }); }); // 其他服务配置... } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // 其他中间件配置... // 添加身份验证和授权中间件 app.UseAuthentication(); app.UseAuthorization(); // 其他路由配置... }

本文作者:宁骑

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!