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