2012-03-27 64 views
1

我有一个MVC3网站发布到我的开发服务器。这个网站的身份验证设置如下 匿名 - 残疾人 的Windows - 启用 表格 - 启用 模拟 - 启用web.config位置不能在MVC3中工作

我在我的网站使用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> 

在内容文件夹。这似乎也没有帮助。有什么建议么?

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

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

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

回答

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() {...} 
}