【问题标题】:Using Roles in MVC 3 VB.NET App在 MVC 3 VB.NET 应用程序中使用角色
【发布时间】:2011-12-22 05:23:57
【问题描述】:

我有一个与 mvc 3 vb.net 应用程序中的角色有关的问题。假设我有 Admin、Developer、PowerAdmin 角色。如果我想根据我一直在使用 if 语句的角色限制查看选项查看以将链接全部隐藏起来,例如:

 @If HttpContext.Current.User.IsInRole("Admin") And Request.IsAuthenticated Then
 @<li><a href="@Url.Content("~/Admin/")">Administrative Tools</a></li>
 End If

我还在一些地方用授权来装饰控制器动作。问题是这样说我有几个动作应该只能用于说一个用户在所有三个角色中,甚至是任意组合中的两个角色。我是否可以简单地将 if 语句嵌套在视图中以隐藏这些视图项?控制器功能怎么样.. 是否可以用类似的东西来装饰控制器功能

   <Authorize(Roles:="Admin" + "PowerAdmin")>

然后让该功能只能由具有这两个角色的人访问????

【问题讨论】:

  • 您可能正在寻找这样的东西:stackoverflow.com/questions/1148312/…
  • 我不明白为什么当 ASP.NET 和 mvc 3 内置角色管理时我必须使用 Enum 任何东西......难道没有办法只用一个干净的 在控制器功能的顶部???似乎很多箍跳只是确保用户同时担任这两个角色..

标签: asp.net vb.net asp.net-mvc-3 razor


【解决方案1】:

简单写两行:

<Authorize(Roles := "Admin")> _
<Authorize(Roles := "PowerAdmin")> _

【讨论】:

  • 我认为应该是这样。但我不确定..对于它是否会看到用户处于管理员状态而不关心基本的 PowerAdmin 角色有点不知所措..非常感谢..
【解决方案2】:

尝试在 Enum 上搜索;这是处理这类事情的完美课程。

希望这会让你走上正轨。

【讨论】:

  • 这只不过是一个“让我为你搜索”的答案。
  • 这可能是“让我为您搜索”答案。但我确实认为枚举类是做到这一点的方法。我不能输入任何很好的例子的原因是因为我也是新手。最近在我的新工作的一些项目中发现了它。我很抱歉不知道您只能在此处提供完整的复制粘贴答案。 tbh,我的回答只是说你应该使用 Enum 类,因为这比根本没有用处要有用得多。我在这里所做的只是为某人指明正确的方向。对不起,如果那没有让你满意。
  • 我不是说在这里放一个完整的复制/粘贴答案,我要求你直接回答这个问题。如果您对使用 Enum 来完成此操作有想法,请详细说明您的想法(如果您还没有亲自尝试过,请使用伪代码)。如果您对更彻底和深思熟虑的答案进行了修改,请随时回复我。我很乐意取消我对改进答案的反对票。
  • 非常感谢您的帮助...我已经用谷歌搜索了它,但这都是针对 ASP.NET 而不是 MVC 3 Razor...不想要复制和粘贴答案。如果有人从我的问题开始阅读他们会看到我想知道我是否走在正确的轨道上......
猜你喜欢
  • 2011-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
  • 2014-10-14
  • 1970-01-01
  • 2011-09-25
  • 2020-01-05
相关资源
最近更新 更多