我有一个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)。?
答案 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() {...}
}