2014-04-08 38 views
0

我有一个带有产品控制器的mvc 5应用程序和所有产品相关视图的相应视图文件夹。我想让用户只能通过用户名“admin”访问整个事物,而不是在每个控制器方法的顶部手动分配一个标签[Authorize(Users =“admin”)]。我尝试在产品视图文件夹中添加一个新的web.config文件,内容如下,但没有奏效。mvc 5控制整个控制器或整个视图文件夹的授权

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

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

由于事先

回答

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">