我创建了一个ASP.NET MVC应用程序,并为我的用户创建了不同类型的角色。然后我创建了不同类型的AuthorizeAttributes来允许/禁止访问我的控件中的不同Actions。
但是我有很多链接指向不同角色限制的不同行动。你可以以某种方式修复,以便theese链接自动被禁用吗?我当然可以在我的代码中添加很多UserIsInRole(....) - 但我真的不愿意,如果有更好的方法。
你有什么建议吗?
答案 0 :(得分:1)
它们是否在列表或菜单中?这是你的控制器可以传递给你的视图吗?您可以传出所有允许的(或禁止的,更合适的)列表,并在显示链接之前检查它。
if(allowedLink.Contans(myLink)
//显示已启用的链接
否则
//显示已禁用
另一个好方法是覆盖ActionLinks的HtmlHelper并让它为你检查权限。然后,如果他们没有权限,你的html助手会显示它被禁用。
答案 1 :(得分:0)
脱离我的头顶......
•您可以为每个链接设置onClick
操作,以便不执行任何操作。
•您可以将链接的网址设置为"#"
,但不执行任何操作。