欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net core 授权详解

程序员文章站 2022-03-07 13:21:12
iauthorizedate接口代表了授权系统的源头: public interface iauthorizedata { string policy { get;...

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 授权的知识点内容

相关标签: asp.net core