IAuthorizeDate接口代表了授權(quán)系統(tǒng)的源頭:
public interface IAuthorizeData{ string Policy { get; set; } string Roles { get; set; } string AuthenticationSchemes { get; set; }}接口中定義的三個屬性分別代表了三種授權(quán)類型:
1、基于角色的授權(quán):
[Authorize(Roles = "Admin")] // 多個Role可以使用,分割public class SampleDataController : Controller{ ...}2、基于scheme的授權(quán):
[Authorize(AuthenticationSchemes = "Cookies")] // 多個Scheme可以使用,分割public class SampleDataController : Controller{ ...}3、基于策略的授權(quán):
[Authorize(Policy = "EmployeeOnly")]public class SampleDataController : Controller{ }基于策略的授權(quán)是授權(quán)的核心,使用這種授權(quán)策略時,首先要定義策略:
public void ConfigureServices(IServiceCollection services){ services.AddMvc(); services.AddAuthorization(options => { options.AddPolicy("EmployeeOnly", policy => policy.RequireClaim("EmployeeNumber")); });}授權(quán)策略本質(zhì)上就是對claims的一系列斷言。
而基于角色和基于scheme的授權(quán)都是一種語法糖,最終會轉(zhuǎn)換為策略授權(quán)。
以上就是關(guān)于asp.net core 授權(quán)的知識點(diǎn)內(nèi)容,如果大家有任何疑問可以聯(lián)系錯新站長站小編。
新聞熱點(diǎn)
疑難解答
圖片精選