asp.net-mvc – ASP.net MVC – 为一个用户/角色授权控制器,但为
发布时间:2020-12-16 04:19:20 所属栏目:asp.Net 来源:网络整理
导读:我有一个像这样的控制器: [Authorize(Users="Admin")]public class MyController : Controller{ ... [AllowAnonymous] public AllUsersAction() { }} 除了我确实想要授权AllUsersAction之外,只有所有授权用户都应该能够点击它,而不仅仅是管理员. 该怎么办?
我有一个像这样的控制器:
[Authorize(Users="Admin")] public class MyController : Controller { ... [AllowAnonymous] public AllUsersAction() { } } 除了我确实想要授权AllUsersAction之外,只有所有授权用户都应该能够点击它,而不仅仅是管理员. 该怎么办? 编辑:我知道我可以授权整个控制器,并为管理员只能使用的所有操作提供更多限制.但我宁愿不把属性放在每一个动作上,而是一个. 这个问题可以更好地表达:如果目前不可能实现这种“极简主义”,那么实施会是什么样的? 解决方法
使用Authorize属性,不带控制器的任何参数:
[Authorize] public class MyController : Controller { ... public AllUsersAction() { } [Authorize(Users="Admin")] public ActionResult OnlyForAdmin() { } } 并为受限操作指定“授权”属性“角色/用户”属性. 遗憾的是,只有当action具有AllowAnonymous属性时,控制器上的Authorize属性才会绕过授权.幸运的是,如果action有自己的Authorize属性,你可以覆盖Authorize属性的OnAuthorization方法以跳过控制器中的授权检查Authorize属性: public class CustomAuthorize : AuthorizeAttribute { public override void OnAuthorization(AuthorizationContext filterContext) { if(filterContext.ActionDescriptor.IsDefined(typeof(AuthorizeAttribute),true)) { //skip authorization check if action has Authorize attribute return; } base.OnAuthorization(filterContext); } } 您可以在示例中使用此CustomAuthorize: [CustomAuthorize(Users="Admin")] public class MyController : Controller { ... [Authorize] public AllUsersAction() { } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – Response.Redirect导致IsPostBack为true
- asp.net – 如何在使用服务器端分隔符时转义字符
- IdentityServer4 4.x版本 配置Scope的正确姿势
- asp.net-mvc – 具有指定Controller和Action的Html.BeginFo
- asp.net-mvc – 是否可以使用自定义错误页面与MVC网站,但不
- asp.net – 如何在aspx文件中创建区域?
- asp.net-mvc – 为什么要使用MVC帖子注销?
- asp.net-mvc – 用于大型视频文件的MVC ActionResult
- asp.net-mvc – 如何将现有的SQL Server数据库添加到asp.ne
- 一道面试题的思考
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC是否使用常规工具箱控
- 将本地化的resources.resx文件转换为asp.net MVC
- asp.net – MVC5(VS2012)Identity CreateIdentit
- 如何在ASP.Net MVC中实现ReverseAJAX(Comet)
- asp.net-mvc-4 – 编辑并继续不在Windows 7,32位
- 发布asp.net网站给出“对象引用未设置为对象的实
- asp.net-mvc – 处理onchange事件在HTML.DropDow
- asp.net-mvc – ASP.NET MVC帖子模型的示例?
- asp.net – 用于流量加密的公共反向代理背后的WC
- 给 asp.net core 写个中间件来记录接口耗时
热点阅读