尝试在控制器和内容上设置安全性

时间:2011-03-07 19:22:02

标签: asp.net-mvc authorization

所以我遇到了通过母版页获取CSS文件的问题。我有另一个问题:Can't get CSS loaded in Master page帮助我正确应用了链接标记(或不同的选项)。

这已在Firebug中得到确认,其中发现了回拨302,但未应用样式。

这个问题导致另一位撰稿人指出了我的Web.config中控制器/内容可能存在的访问问题。因此,这个问题的原因分开了“安全”相关的问题。

我已经阅读了许多完整的MVC应用程序教程,例如NerdDinner(v.1,v.2)和Pro MVC 2,并没有在我学习ASP.NET MVC的过程中提到很多阅读材料 - 以及我没有看到任何有关访问来源的详细信息,例如/内容给匿名用户只是为了加载css文件。我也没有读过任何MVC采取完全锁定的方法,你必须为特定角色/用户/每个人打开特定区域或者为所有人打开它。

所以我仍然遇到无法应用CSS规则的问题,即使它显示正在找到.css文件(302)。但另一个问题是我看到第二次调用在控制台中加载文件:

localurl.com/Account/Logon?ReturnURL=%2Content%2AdminViews.css

但错误是500。

现在我已经在web.config“身份验证”部分注释掉了登录URL行,并且我没有在路由词典中看到的路由。

对这两个相关问题有何看法?

更新

我发现问题与为什么重定向到

localurl.com/login.aspx?returnurl=content/adminview.css

是启用了表格身份验证(在IIS中),其属性设置为“Login.aspx”。更改此项会在直接访问文件时生成ACL权限(黄色死亡屏幕)

localurl.com/contents/adminview.css

我发现在内容目录中添加用户(即IUSR帐户)可以解决此问题。

所以我现在需要找到设置安全性的正确方法。我应该使用什么账户......等等。我已经获得了IUSR_ComputerName的访问权限,我的理解是默认的IIS匿名用户帐户。那么为什么这对于访问〜/ contents /目录中的资源来说还不够呢。

1 个答案:

答案 0 :(得分:1)

您可以使用web.config访问这些资源。

 <location path="Content">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>