我有一个带有产品控制器的mvc 5应用程序和所有产品相关视图的相应视图文件夹。我想只使用用户名为“admin”的用户可以访问整个内容,而不是在每个控制器方法的基础上手动分配标签[Authorize(Users =“admin”)]。我尝试在Product views文件夹中添加一个新的web.config,其中包含以下内容,但没有用。
<configuration>
<system.web>
<authorization>
<allow users="admin"/>
<deny users="*"/>
</authorization>
</system.web>
</configuration>
如果是的话,这有可能实现吗?
提前致谢
答案 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">
。