Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.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/0/asp.net-core/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
C# 自定义授权属性或基于策略的授权处理程序_C#_Asp.net Core_.net Core - Fatal编程技术网

C# 自定义授权属性或基于策略的授权处理程序

C# 自定义授权属性或基于策略的授权处理程序,c#,asp.net-core,.net-core,C#,Asp.net Core,.net Core,我应该检查自定义头是否存在,例如:[“apikey”],然后检查数据库中是否存在给定的键。如果不在场,未经授权返回。我应该使用授权属性还是基于策略的授权处理程序?我发现自定义身份验证处理程序比授权处理程序更适合此场景,并且实现了相同的方法。如果可以使用策略,建议使用策略。编写自定义授权属性应该是最后的选择。欢迎使用StackOverflow。为了帮助您,我们必须完全理解您的问题。请具体一点,不要跳过细节。请阅读我同意@Marco,使用基于策略的授权将使您的代码更加可重用和干净。由于验证很简单,我

我应该检查自定义头是否存在,例如:[“apikey”],然后检查数据库中是否存在给定的键。如果不在场,未经授权返回。我应该使用授权属性还是基于策略的授权处理程序?

我发现自定义身份验证处理程序比授权处理程序更适合此场景,并且实现了相同的方法。

如果可以使用策略,建议使用策略。编写自定义授权属性应该是最后的选择。欢迎使用StackOverflow。为了帮助您,我们必须完全理解您的问题。请具体一点,不要跳过细节。请阅读我同意@Marco,使用基于策略的授权将使您的代码更加可重用和干净。由于验证很简单,我不知道哪一个更好。即使我发现基于策略的身份验证处理程序是一种更好的方法,将来可以添加更多的req处理程序。使用策略是人为的,而且“僵硬”最终会硬编码这些策略。我发现,对于简单的验证,最好使用属性,对于基于权限(而不是基于角色)的其他事情,安全性最好使用属性并使其由数据库驱动,