2012-03-27 62 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() {...} 
}