2011-03-21 178 views
0

在asp.net mvc網站中,該站點啓用了表單身份驗證。ASP.NET MVC身份驗證重定向到區域登錄頁面

的形式登錄頁面坐落在一個領域,比如:

區:區域1,控制器:帳戶,操作:登錄

當用戶還沒有通過身份驗證,然後單擊需要身份驗證的鏈接,用戶被重定向到登錄頁面。這確實發生並重定向到上面指定的登錄頁面。但是在調試期間,發現區域值不包含在RouteData.Values對象中。也就是說,RouteData.Values對象只有在跟隨值:

控制器:帳戶 操作:登錄

在這種情況下,推測爲適當的控制器的MVC應用程序在默認情況下搜索和無需考慮包括面積值。

與此相反,當我直接單擊指向登錄頁面的鏈接時,所有處理都按預期發生,即區域值包含在RouteData.Values對象中。

有沒有解決這個問題的方法?

回答

0

如下您可以添加面積值:

if (!RouteData.Values.ContainsKey ("area")) 
    { 
     if (RouteData.DataTokens["area"] != null) 
     { 
     RouteData.Values.Add ("area", RouteData.DataTokens["areaRegistered"]); 
     } 
     else 
     { 
     RouteData.Values.Add ("area", ""); 
     } 
    } 
相關問題