0

我再次遇到路由問題:) 當我運行應用程序,如果用戶未通過身份驗證,他將被重定向到登錄頁面。 我用FormsAuthentication 登錄頁面是在區域帳戶 當前的URL是從web配置身份驗證 - 路由上的asp mvc區域問題

http://localhost:38962/Account/Home/Index?ReturnUrl=%2f 

設置

<authentication mode="Forms"> 
     <forms loginUrl="~/Account/Home/Index" timeout="2880" /> 
    </authentication> 

我已經嘗試設置AccountAreaRegistration類路徑

context.MapRoute("home_login", 
       "", 
       new { area = "Account", controller = "Home", action = "Index", ReturnUrl = UrlParameter.Optional }); 

和其他一些設置BU不能獲取登錄頁面和URL保持只是

http://localhost:38962 

而且我也有AccountAreaRegister路線

context.MapRoute(
       "Account_default", 
       "Account/{controller}/{action}/{id}", 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 

更新1

routes.MapRoute(
        "Default", 
        "{controller}/{action}/{cityId}", 
        new { area = "MainArea", controller = "Home", action = "Index", cityId = UrlParameter.Optional }, 
        new string[] { "MCN.WebUI.Areas.MainArea.Controllers" }).DataTokens.Add("area", "MainArea"); 

回答

1

修正你的圖路線函數調用,第二個參數應該是

Account/{controller}/{action} 

雷莫已經在第三個參數

的web.config

<authorization> 
     <deny users="?"/> 
    </authorization> 
+0

它仍然是相同的區域。我不知道這是否重要。在global.asax中,我有默認路由,將用戶導向另一個區域的頁面。該頁面需要認證(控制器具有Authorize屬性)。如果用戶未通過身份驗證,則說明此登錄頁面是以此整個網址開始的。 – 1110 2012-01-29 14:54:27

+0

你可以發佈該代碼嗎?你是否也啓用了web.config中的授權? – chandmk 2012-01-29 15:03:07

+0

我已更新問題 – 1110 2012-01-29 15:08:19