asp.net-mvc – 覆盖控制器AuthorizeAttribute只有一个操作
发布时间:2020-05-23 10:28:57 所属栏目:asp.Net 来源:互联网
导读:我有一个用AuthorizeAttribute装饰的控制器。控制器包含几个操作,除了需要由CustomAuthorizeAttribute提供一些自定义认证的操作之外,所有操作都需要认证。 我的问题是一旦我添加了[授权]在控制器级别可以覆盖它(或删除它与[CustomAuthorize]只是一个动作?
|
我有一个用AuthorizeAttribute装饰的控制器。控制器包含几个操作,除了需要由CustomAuthorizeAttribute提供一些自定义认证的操作之外,所有操作都需要认证。 我的问题是一旦我添加了[授权]在控制器级别可以覆盖它(或删除它与[CustomAuthorize]只是一个动作?或者,我必须从控制器级别删除[授权],并将它单独添加到每个其他操作? 我纯粹为了方便,因为我是懒惰,不想装饰每一个动作与AuthorizeAttribute。 [Authorize]
public class MyController : Controller {
//requires authentication
public ViewResult Admin() {
return View();
}
//... a lot more actions requiring authentication
//requires custom authentication
[CustomAuthorize] //never invoked as already failed at controller level
public ViewResult Home() {
return View();
}
}
解决方法您可以更改属性运行的顺序(使用Order属性),但我相信在这种情况下,它们将仍然运行,除非生成立即生效的结果。关键是在最高级别(类)应用最小限制性属性,并对方法获得更多限制。例如,如果您希望Home操作公开,您需要从类中删除Authorize属性,并将其应用于其他每个方法。如果操作具有相同的允许级别,但具有不同的结果,则改变顺序可能就足够了。例如,您通常会重定向到“登录”操作,但对于Home,您要重定向到“关于”操作。在这种情况下,给予类属性Order = 2和Home动作属性Order = 1。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 选择ASP.NET MVC菜单项
- asp.net-mvc – MVC 4捕获所有路由从未到达
- asp.net-web-api – 从响应中删除标题
- asp.net-mvc – 获取文件夹中的文件
- ASP.NET MVC的OnResultExecuted方法中的ActionResult的filt
- asp.net AJAX实现无刷新获得数据
- asp.net – 在web.config文件中设置重定向
- asp.net – 验证嵌套的ViewModels
- asp.net – 如何全局创建CustomPrincipal(使用和不使用Auth
- asp.net-mvc – ASP.NET MVC Beta支持列表中的Model Binder
推荐文章
站长推荐
- asp.net mvc webapi 实用的接口加密方法示例
- asp.net-mvc-3 – MVC 3 – 其他视图数据未出现在
- asp.net-core – 如何在部署asp.net核心应用程序
- asp.net-mvc – ASP.NET MVC:除了IE之外,我如何
- ASP.NET MVC中数据注释的默认资源
- asp.net-mvc-4 – 如何在ASP.Net MVC 4中定义特定
- 对asp.net网站进行基准测试,我可以使用jmeter吗?
- asp.net-mvc – 在Umbraco 6.1.1 MVC 4中,如何使
- ASP.NET MVC – Ajaxified RenderAction
- ASP.NET -- WebForm -- HttpResponse 类的方法和
热点阅读
