我正在使用ASP.NET MVC 3,我正在尝试做一些非常直接的事情......
我的应用程序使用Forms身份验证,这对控制器/操作非常有效 . 例如,如果我使用以下属性装饰控制器或操作,则只有管理员组的成员才能查看它们:
[Authorize(Roles="Administrators")]
但是我在默认的Scripts文件夹下有一个名为Admin的文件夹 . 我只希望Administrators组的成员能够访问此目录中的脚本,因此我在目录中创建了一个新的web.config,其中包含以下内容:
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="Administrators"/>
<deny users="*"/>
</authorization>
</system.web>
</configuration>
但是,无论用户是否是Administrators组的成员,他们都会收到302 Found消息,然后重定向到登录页面 .
如果我将web.config更改为 allow user="*"
,那么它可以工作 . 如果我为我正在测试的特定用户添加 allow users="Username"
,它也可以工作 .
关于我出错的地方或我可以开始调查的地方的任何想法?
1 回答
您是否在 web.config 中添加了 web.config 默认的Scripts文件夹,如下所示