2011-03-21 169 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", ""); 
     } 
    } 
相关问题