Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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 是否可以为所有控制器全局设置[Authorize]属性?_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 是否可以为所有控制器全局设置[Authorize]属性?

Asp.net mvc 是否可以为所有控制器全局设置[Authorize]属性?,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,目前,将[Authorize]置于控制器类或特定操作上。是否可以为所有控制器集中设置[Authorize]属性,例如防止未经验证的使用。然后,可以在特定控制器上定义更具体的[Authorize]属性,例如 [Authorize(Roles="Admin, SuperUser")] 谢谢。这应该可以(放入应用程序\u启动): 另一个选项是让控制器从基本控制器类继承,并将authorized属性放在那里 然后,可以使用特定角色、用户等覆盖子类上的基本属性 [Authorize] public c

目前,将[Authorize]置于控制器类或特定操作上。是否可以为所有控制器集中设置[Authorize]属性,例如防止未经验证的使用。然后,可以在特定控制器上定义更具体的[Authorize]属性,例如

[Authorize(Roles="Admin, SuperUser")]
谢谢。

这应该可以(放入应用程序\u启动):


另一个选项是让控制器从基本控制器类继承,并将authorized属性放在那里

然后,可以使用特定角色、用户等覆盖子类上的基本属性

[Authorize]
public class BaseController : Controller{}

public class ChildController: BaseController{}

[Authorize(Role = "Role A")]
public class AnotherChildController: BaseController{}

你考虑过使用动作过滤器吗?谢谢。一旦在全球范围内应用,将[Authorize(Roles=“User”)应用于特定操作会产生什么影响。它会覆盖它还是将授权扩展到“Admin”、“SuperUser”、“User”?您必须定义AuthorizeAttribute?仅放置此项将返回错误消息。非常感谢。若要对REST API执行相同操作,请将此项添加到WebApiConfig.Register():config.Filters.add(new AuthorizeAttribute(){Roles=“Admin,SuperUser”});谢谢。这是一个有趣的回答。可能有“AdminController”,“UserController”作为子控制器。添加额外的[Authorize(Roles=“Role B”)]。这会覆盖或扩展吗?我从同一个链接中发现了FluentSecurity!!:)仅供参考,您的解决方案将遇到需要身份验证的登录问题。请参阅上面的我的链接以获得解决方案。考虑过这种方法后,虽然可以做到,但感觉有点“困难”"更改控制器代码文件中的控制器名称。我必须承认,我喜欢从一个文件控制控制器的FluentSecurity方法,而且控制器仍然是普通的旧基控制器。这似乎更糟。它不那么简单,并且有可能有人忘记从基类继承而不是从for继承正在添加[Authorize]属性。
[Authorize]
public class BaseController : Controller{}

public class ChildController: BaseController{}

[Authorize(Role = "Role A")]
public class AnotherChildController: BaseController{}