ASP.NET MVC 3:我无法导航到我的;内容“;授权前的目录

ASP.NET MVC 3:我无法导航到我的;内容“;授权前的目录,asp.net,authentication,asp.net-mvc-3,Asp.net,Authentication,Asp.net Mvc 3,总之,我第一次将MVC3应用程序部署到测试服务器上。该应用程序在Cassini的本地运行与预期一样。但是,在通过IIS的服务器上,在我通过身份验证之前,它不会显示CSS。如果我尝试导航到localhost/Content/Site.css,它会将我重定向到登录页面。我签入了IIS,并且启用了匿名身份验证 你知道有什么问题吗 谢谢 将以下内容添加到web.config。您必须告诉asp.net,无论您是否经过身份验证,都可以访问以下目录。这属于web.config中的配置设置 <config

总之,我第一次将MVC3应用程序部署到测试服务器上。该应用程序在Cassini的本地运行与预期一样。但是,在通过IIS的服务器上,在我通过身份验证之前,它不会显示CSS。如果我尝试导航到localhost/Content/Site.css,它会将我重定向到登录页面。我签入了IIS,并且启用了匿名身份验证

你知道有什么问题吗


谢谢

将以下内容添加到web.config。您必须告诉asp.net,无论您是否经过身份验证,都可以访问以下目录。这属于web.config中的配置设置

<configuration>
...

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

...

<system.web>
<authorization>
  <deny users="?" />
</authorization>
</system.web>
.....

</configuration>

...
...
.....

查看文件的权限,确保它们与您可以匹配的文件相匹配。其次,检查您的web.config以确保您没有在其中使用授权元素,例如:

<authorization>
    <allow users="user1, user2"/>
    <deny users=”?”/>
</authorization>

我也有类似的问题。对我来说,答案是为文件夹授予读取权限,以便IUSR以及IIS\u IUSRS

不能使用路由或web.config文件保护MVC 应用保护MVC应用程序的唯一受支持的方法是 将[Authorize]属性应用于每个控制器和操作 方法(登录/注册方法除外)。担保 基于当前领域的决策是一件非常糟糕的事情,而且将是公开的 您的应用程序存在漏洞

你可以读更多

您可以在web.config文件中控制身份验证方法:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" defaultUrl="~/Home/Index" timeout="2880" protection="All" slidingExpiration="true" />
</authentication>

我实际上已经有了这个。除了我还有一行没有经过认证的,这是我的一段摘录。我已经排除了很多。确保您有一个元素是该元素的直接后代。我仍然没有获得任何css,也无法直接导航到我的Content/site.css文件。您正在项目的根目录中编辑web.config,对吗?不是/Views目录中的web.config。这似乎是权限问题。我在wwwroot dir中的目录上复制了整个目录。我不得不将网络服务和IUser重新添加为有权访问我的应用程序目录的“用户”。好的,很酷-所以是权限。另外,正如前面提到的web.config中的authorize节点,这不是一般推荐的mvc安全性方法。应该使用[Authorize]属性。当然-有时您需要保护包含其他内容的文件夹,但是与mvc特定项目相关的任何内容都应该使用authorize属性,而不是web表单,因为在mvc中,多个URL有时会导致相同的控制器/操作方法。在这些情况下,保护URL非常容易出错。