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



我有一个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)吗。?

我建议启用匿名请求。

如果需要在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() {...}
}

最新更新