当前位置:首页 > Web开发 > 正文

asp.net core 授权

2024-03-31 Web开发

IAuthorizeDate接口代表了授权系统的源头:

public interface IAuthorizeData { string Policy { get; set; } string Roles { get; set; } string AuthenticationSchemes { get; set; } }

接口中界说的三个属性分袂代表了三种授权类型:

1、基于角色的授权:

[Authorize(Roles = "Admin")] // 多个Role可以使用,支解 public class SampleDataController : Controller { ... }

2、基于scheme的授权:

[Authorize(AuthenticationSchemes = "Cookies")] // 多个Scheme可以使用,支解 public class SampleDataController : Controller { ... }

3、基于计谋的授权:

[Authorize(Policy = "EmployeeOnly")] public class SampleDataController : Controller { }

基于计谋的授权是授权的核心,使用这种授权计谋时,首先要界说计谋:

public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddAuthorization(options => { options.AddPolicy("EmployeeOnly", policy => policy.RequireClaim("EmployeeNumber")); }); }

授权计谋素质上就是对claims的一系列断言。

而基于角色和基于scheme的授权都是一种语法糖,,最终会转换为计谋授权。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31324.html