Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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 mvc 控制器操作具有不同的授权级别是否是一种不良做法?_Asp.net Mvc_Asp.net Mvc 3_Single Responsibility Principle - Fatal编程技术网

Asp.net mvc 控制器操作具有不同的授权级别是否是一种不良做法?

Asp.net mvc 控制器操作具有不同的授权级别是否是一种不良做法?,asp.net-mvc,asp.net-mvc-3,single-responsibility-principle,Asp.net Mvc,Asp.net Mvc 3,Single Responsibility Principle,我们正在开发一个网站,我们有一个控制器,处理一个模型的积垢,例如国家。仅允许管理员执行CRUD操作。但是,我们还希望控制器提供一个JSON选择实体列表来填充下拉列表。此模式在整个应用程序中都存在 这意味着我们不能使用标准授权属性来限制管理员在进入控制器时的访问权限。我们需要用特定的authorize属性来修饰每个动作 我们在一个控制器上需要多个授权级别这一事实是一个坏迹象吗?这是否表明我们违反了SRP 处理许多控制器与只需要管理员更新但为所有授权用户提供JSON选择列表的实体相关这一事实的最佳模

我们正在开发一个网站,我们有一个控制器,处理一个模型的积垢,例如国家。仅允许管理员执行CRUD操作。但是,我们还希望控制器提供一个JSON选择实体列表来填充下拉列表。此模式在整个应用程序中都存在

这意味着我们不能使用标准授权属性来限制管理员在进入控制器时的访问权限。我们需要用特定的authorize属性来修饰每个动作

我们在一个控制器上需要多个授权级别这一事实是一个坏迹象吗?这是否表明我们违反了SRP

处理许多控制器与只需要管理员更新但为所有授权用户提供JSON选择列表的实体相关这一事实的最佳模式是什么


谢谢

这样做的唯一问题是,您可能会忘记保护本应仅为管理员的操作

实际上,解决这个问题的首选方法是在您的站点上设置一个仅限管理员的区域(使用MVC区域)


这样,整个www.site.com/admin部分将仅作为管理员进行保护。

是的,我担心这样做很容易导致授权错误。