2010-02-24 60 views
0

在我的開發環境中,所有功能都符合我的預期。我可以訪問所有頁面,只要我到達安全頁面,我會檢查Request.IsAuthenticated,並在需要時重定向到登錄頁面。 當我在IIS7下部署項目時,問題就開始了。當我訪問網站時,我被重定向到登錄頁面(如web.config中定義的),儘管它假設是公共頁面...如果我在管理控制檯中禁用表單身份驗證,則Request.IsAuthenticated始終返回true 。 所以禁用公共頁面的表單身份驗證

我該如何讓IIS行爲像我的ASP.NET開發服務器?

p.s. 我正在用asp.net MVC

謝謝, 伊甸園。

+2

您使用默認的asp.net成員資格或自定義成員資格提供程序嗎?你還使用[Authorize()]動作過濾器來確定用戶是否被授權? – lancscoder 2010-02-24 10:54:15

+0

我沒有改變一件事..我只是開始一個新的MVC項目(Visual Studio 2008),並按原樣部署... 一切按預期與IIS6工作,但IIS7給我麻煩... – Eden 2010-02-26 09:19:43

回答

2

也許你的web.config中有授權部分,它拒絕所有未經身份驗證的用戶請求。有關授權部分的詳細信息,請查看this article。這將是更好的,允許未經授權的用戶訪問顯然是通過添加

<authorization> 
     <allow users="*" /> 
    </authorization> 

編輯26/02:
可能有一些具體的IIS授權規則(IIS 7引入了一種新的授權機制)。我建議您檢查使用IIS管理工具爲應用程序定義的所有規則(this article說明如何檢查它們)。並且可能對您來說檢查changes between IIS 6 and IIS 7IIS 7 url authorization feature in details會很有趣。

另外我檢查了我的盒子(Windows 7)。我創建了一個簡單的asp.net mvc應用程序並將它部署到IIS(版本7.5)。所有工作都按預期工作。可能在服務器上存在一些限制,這些限制放在根配置文件(根文件夾中的配置文件)或machine.config中。

+0

不,我不。但文章看起來很有希望,儘管它沒有解釋生產和開發環境之間的差異。 – Eden 2010-02-24 15:27:13

相關問題