Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 5 MVC 6自定义身份验证_Asp.net_Asp.net Core Mvc - Fatal编程技术网

Asp.net 5 MVC 6自定义身份验证

Asp.net 5 MVC 6自定义身份验证,asp.net,asp.net-core-mvc,Asp.net,Asp.net Core Mvc,我花了两周的时间寻找解决方案,它允许我进行基于权限的身份验证。我有这样的数据库模式 User <- Role <--> Permissions User有两种选择 您可以将权限映射到声明。角色实际上只是场景中的一个分组,而不是您授权的对象。因此,在创建用户声明主体时,您需要为每个权限添加声明,然后在授权策略中验证它们 您可以创建角色声明,然后在授权策略中转到数据库并从中提取权限,查看角色是否满足策略。授权要求处理程序可以接受,因此您应该在应用程序启动时注册Permission

我花了两周的时间寻找解决方案,它允许我进行基于权限的身份验证。我有这样的数据库模式

User <- Role <--> Permissions

User有两种选择

  • 您可以将权限映射到声明。角色实际上只是场景中的一个分组,而不是您授权的对象。因此,在创建用户声明主体时,您需要为每个权限添加声明,然后在授权策略中验证它们
  • 您可以创建角色声明,然后在授权策略中转到数据库并从中提取权限,查看角色是否满足策略。授权要求处理程序可以接受,因此您应该在应用程序启动时注册PermissionsProvider,然后在处理程序的构造函数中引用它

  • 您可以利用系统标识的使用,而无需自行启动,免费获得签名验证。您所需要做的就是实现登录、注销和禁用页面

    看看AuthorizeAttribute和这个问题,用您的规则创建一个自定义属性:@ADreNaLiNe DJ,这是MVC的早期版本。不适用,我不知道。但是关于MVC6的身份验证已经有一个问题:@ADreNaLiNe DJ T也没有解决这个问题。