這篇文章將為大家詳細(xì)講解有關(guān)asp.net core授權(quán)的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)公司是一個(gè)技術(shù)型專業(yè)網(wǎng)站建設(shè)公司,致力于為廣大企業(yè)、創(chuàng)業(yè)者打造切實(shí)有效的PC站、WAP站、APP站點(diǎn)等企業(yè)網(wǎng)站。無論是企業(yè)宣傳的網(wǎng)絡(luò)營銷推廣、致力于營銷的電商網(wǎng)站、內(nèi)容資訊分享的各行業(yè)網(wǎng)站或其他類型網(wǎng)站,我們都從網(wǎng)站前期定位分析策劃、技術(shù)架構(gòu),到網(wǎng)站界面設(shè)計(jì)、創(chuàng)意表現(xiàn)、站點(diǎn)架構(gòu)搭建以及后續(xù)訪問監(jiān)控、維護(hù)、網(wǎng)站托管運(yùn)營反饋建議等提供整套服務(wù)。IAuthorizeDate接口代表了授權(quán)系統(tǒng)的源頭:
public interface IAuthorizeData { string Policy { get; set; } string Roles { get; set; } string AuthenticationSchemes { get; set; } }
接口中定義的三個(gè)屬性分別代表了三種授權(quán)類型:
1、基于角色的授權(quán):
[Authorize(Roles = "Admin")] // 多個(gè)Role可以使用,分割 public class SampleDataController : Controller { ... }
2、基于scheme的授權(quán):
[Authorize(AuthenticationSchemes = "Cookies")] // 多個(gè)Scheme可以使用,分割 public class SampleDataController : Controller { ... }
3、基于策略的授權(quán):
[Authorize(Policy = "EmployeeOnly")] public class SampleDataController : Controller { }
基于策略的授權(quán)是授權(quán)的核心,使用這種授權(quán)策略時(shí),首先要定義策略:
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)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。