2010-04-21 179 views
5

我的ASP.NET MVC項目中的默認控制器是用[Authorize]屬性裝飾的。當我在開發計算機上部署網站並訪問網站時,我被重定向到登錄頁面(在Web.Config的表單loginUrl部分定義)。結果:一切都按預期工作。默認頁面爲ASP.NET MVC:AuthorizeAttribute

當我在生產服務器(Windows Server 2008,IIS 7,DefaultAppPool)上發佈網站並訪問網站時,預期地址顯示在地址欄(/Account/LogOn?ReturnUrl=*my_expected_return_url*)中,但頁面顯示「您沒有權限查看此目錄或頁面「。而不是登錄頁面。如果我刪除默認控制器/操作中的[授權]屬性,頁面將正確顯示。

我的web.config文件:

sessionState mode="InProc" timeout="30" 
    authentication mode="Forms" 
     forms loginUrl="~/Account/LogOn" timeout="2880" 
+0

請確保您沒有另一個web.config在網站的父文件夾中。 – 2010-04-21 17:26:32

+0

您的根目錄中是否有名爲Default.aspx的文件?另外,請添加您使用的.net框架,asp.net和asp.net mvc的版本。 – 2010-04-22 15:11:25

回答

1

你有沒有在你的web.config一節,明確允許非授權用戶訪問該頁面~/Account/LogOn

<configuration> 
    <location path="~/Account/LogOn"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     <allow users="?" /> 
     </authorization> 
    </system.web> 
    </location> 
</configuration>