【问题标题】:ASP.NET MVC Authorized Roles, with HasAccesss from the viewASP.NET MVC 授权角色,具有视图中的 HasAccesss
【发布时间】:2013-01-12 02:35:12
【问题描述】:

我们在控制器上使用[Authorize (Roles="yadda, yadda2")] 属性,我想知道是否有内置机制来发现他们是否可以从视图中访问?

[Authorize (Roles="System Administrator, Administrator")]
public abstract class OperationsBaseContoller : BaseController
{
    // omitted
}

// some view
@if(HasAccessTo<OperationsBaseController>())
{
   <a href="#somewhereInOperations">Operations Action</a>
   <a href="#anotherInOps">Example</a>
   <a href="#oneMore">filler</a>
}

像上面这样的东西会很棒,这样我就可以避免呈现无论如何都无法传递给他们的链接。我确实,但是,想在User.IsInRole("....") 中再次将可用角色列表放在视图中,因为这似乎是维护/重复代码的噩梦。我想如果他们给了我们这个属性,他们也给了一个内置的方法来从视图中检查它。

如果没有(我自己找不到),我会自己写,但想避免潜在的轮子改造。

【问题讨论】:

  • 您可以利用 IPrinciple 上的 User.IsInRole("Admin") 方法来实现此目的。

标签: asp.net-mvc-4 authorization roles


【解决方案1】:

有一些有用的扩展方法可以做到这一点

Html.ActionAuthorized

Html.ActionLinkAuthorized

发表于

http://vivien-chevallier.com/Articles/create-an-authorized-action-link-extension-for-aspnet-mvc-3

在本文中,我将解释如何创建可感知授权的操作链接扩展,以便我们可以根据其授权隐藏或禁用操作链接。

【讨论】:

    猜你喜欢
    • 2010-10-21
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 2013-11-02
    • 2011-09-03
    • 1970-01-01
    相关资源
    最近更新 更多