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 授权的知识点内容,如果大家有任何疑问可以联系站长技术小编。
Linux 中没有一个 像样的支持 Wayland 显示服务器的屏幕录制软件 。 如果你使用 ...
实体 有五种预定义的XML实体,HTML编码者应该熟悉。XML文档中的字符、、、"和'被...
使用REPLACE来将数据库里读出来的数据替换,如果字段不为空是正常,但如果 为空时...
2020年4月26日主题为“新时代 新营销 新增长”的纷享销客2020销售增长大会暨春季...
Razor 同时支持 C# (C sharp) 和 VB (Visual Basic)。 主要的 Razor C# 语法规则...
这个方法可以把整个文件夹打包到xml文件中,把这个xml文件文件和解包文件放在一...
1、将commons-fileupload-1.3.3.jar复制到Web应用的lib文件夹下,在WebRoot目录...
1.1 前言 目前收集整理了21个常用的javaScript正则表达式,其中包括用户名、密码...
企业微信端产品“C端用户小程序”,是一款服务于vivo线下代理、门店和导购,帮助...
本案例由纷扬科技投递并参与评选CSDN云计算独家全网首发更多关于【 云X 案例征集...