mvc 5控制整个控制器或整个视图文件夹的授权

时间:2014-04-08 08:59:00

标签: asp.net-mvc-5

我有一个带有产品控制器的mvc 5应用程序和所有产品相关视图的相应视图文件夹。我想只使用用户名为“admin”的用户可以访问整个内容,而不是在每个控制器方法的基础上手动分配标签[Authorize(Users =“admin”)]。我尝试在Product views文件夹中添加一个新的web.config,其中包含以下内容,但没有用。

<configuration>
  <system.web>
    <authorization>
      <allow users="admin"/>
      <deny users="*"/>
    </authorization>
  </system.web>
</configuration>

如果是的话,这有可能实现吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

可以在特定方法和控制器类上添加AuthorizeAttribute。第二个将影响该控制器中的每个操作方法。

[Authorize(Users = "admin")] 
public class AdminController
{
    public ActionResult Index() { ... }
}

如果要使用Web.config,必须记住IIS将根据URL加载Web.config文件,而不了解Views。因此,如果URL为http://server/Products/Something,则必须将配置文件放在应用程序根目录中名为Products的文件夹中。或者,您可以在根Web.config文件中使用<location path="/Products">