asp.net core 授權詳解
阿新 • • 發佈:2020-01-21
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的授權都是一種語法糖,最終會轉換為策略授權。
以上就是關於asp.net core 授權的知識點內容,如果大家有任何疑問可以聯絡我們小編。