web.config位置在MVC3中不起作用

时间:2012-03-27 05:12:44

标签: asp.net-mvc-3 razor web-config

我有一个MVC3网站发布到我的开发服务器。此网站的身份验证设置如下 匿名 - 禁用 Windows - 已启用 表格 - 已启用 模拟 - 已启用

我在网站上使用Forms身份验证。为了允许匿名访问Content文件夹(此处提供了所有图像,样式),我在根web.config文件中添加了位置标记。

当我尝试访问我的图片http://devserver/website/Content/images/logo.png时,它会将我重定向到登录页面。

  

如果我在IIS中设置匿名 - 启用,那么我可以访问图像。   否则不是。但是我不想这样做,因为如果启用了匿名访问,我无法直接在用户名文本框中显示本地登录的用户名。

我还尝试添加带有以下内容的web.config文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <remove name="BlockViewHandler" />
    </handlers>
  </system.webServer>
</configuration>
在Content文件夹中

。这似乎也没有帮助。有什么建议吗?

设置匿名 - 启用是允许匿名访问我的网站的唯一方法。

我有一个类似配置的ASP.net网站 1.匿名 - 已禁用,已启用Windows,已模拟 - 已启用 2.根web.config文件中的位置标记。 它完美无缺。

我不明白为什么在MVC3中同样不起作用。我可以像在其他PHP MVC3框架中一样添加一些文件类型排除(* .css,* .jpg,* .png)。?

1 个答案:

答案 0 :(得分:0)

我建议启用匿名请求。

如果需要在ASP.NET MVC中保护页面,则需要使用[Authorize]属性。您可以将其放在控制器上或动作声明中。

示例:

[Authorize]
public class HomeController : Controller
{
  // All actions will be authenticated
  ...
}

public class HomeController : Controller
{
  public ActionResult EveryoneAllowed() {...}

  [Authorize]
  public ActionResult OnlyAuthenticated() {...}
}