asp.net-mvc – 如何避免重复授权代码逻辑
发布时间:2020-12-16 06:58:20 所属栏目:asp.Net 来源:网络整理
导读:我编写了一个源自 System.Web.Mvc.AuthorizeAttribute的自定义授权属性.我正在从我的控制器中成功使用它来限制对某些功能的访问. public class ArticleController : Controller{ [CustomAuthorize(Role.Administrator)] public ActionResult Delete(int id)
我编写了一个源自
System.Web.Mvc.AuthorizeAttribute的自定义授权属性.我正在从我的控制器中成功使用它来限制对某些功能的访问.
public class ArticleController : Controller { [CustomAuthorize(Role.Administrator)] public ActionResult Delete(int id) { // ... } } 这很好.现在我想根据相同的授权逻辑显示或隐藏HTML元素.例如,在我的视图“文章”中,如果用户不是管理员,我想隐藏操作按钮“删除”.我写过类似的东西: <ul id="menu"> <li>@if (User.IsInRole(Role.Administrator)) { @Html.ActionLink("Delete","Delete","Article",new { id = article.ID },null) } </li> </ul> 它工作正常,但它创建了代码逻辑重复,因为我需要指定两次必要的信用来执行操作: >在控制器中阻止或允许操作. 避免这种重复的最佳方法是什么?有没有办法从视图中重用我的自定义授权属性? 解决方法
自定义助手应该是最好的选择,例如:
@Html.SecureActionLink("Delete","Article") 此帮助程序将检查某种服务以查看当前用户/角色是否具有此链接的权限. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何让ASP.NET MVC在IIS 6中运行?
- asp.net mvc 之旅 —— 第六站 ActionFilter的应用及源码分
- asp.net-mvc – 使用Web Deploy发布ASP.NET MVC2站点
- asp.net-core – 恢复AspNet标识核心包时出错
- 在ASP.NET中使用querystring的最佳做法?
- asp.net – 请求Facebook访问令牌时400错误请求
- asp.net – 访问在DelegatingHandler中执行的当前控制器
- ASP.NET MVC中是否有嵌套主页?
- asp.net – 如何集成ASP .Net Model View Presenter(MVP)模
- .NET生成服务引用时加载错误的程序集
推荐文章
站长推荐
- asp.net-core – 如何将安全更新应用于.NET Core
- asp.net-mvc – ASP.NET MVC Json DateTime序列化
- 实验四:搭建动态论坛(ASP+ACCESS)
- asp.net core 2.0 Microsoft.Extensions.Logging
- asp.net-mvc – ASP.NET MVC3 IIS无法获取加载样
- asp.net-mvc – 根据需要设置RenderSection:fal
- asp.net-mvc – MVC4中的ELMAH和API控制器不记录
- asp-classic – 从用户检测空/空输入
- asp.net – asp:Gridview&asp:表格生成bor
- 使用oAuth和ASP.NET MVC WebApi进行身份验证
热点阅读