ASP.NET MVC身份验证重定向到区域登录页面
问题描述:
在asp.net mvc网站中,该站点启用了表单身份验证。ASP.NET MVC身份验证重定向到区域登录页面
的形式登录页面坐落在一个领域,比如:
区:区域1,控制器:帐户,操作:登录
当用户还没有通过身份验证,然后单击需要身份验证的链接,用户被重定向到登录页面。这确实发生并重定向到上面指定的登录页面。但是在调试期间,发现区域值不包含在RouteData.Values对象中。也就是说,RouteData.Values对象只有在跟随值:
控制器:帐户 操作:登录
在这种情况下,推测为适当的控制器的MVC应用程序在默认情况下搜索和无需考虑包括面积值。
与此相反,当我直接单击指向登录页面的链接时,所有处理都按预期发生,即区域值包含在RouteData.Values对象中。
有没有解决这个问题的方法?
答
如下您可以添加面积值:
if (!RouteData.Values.ContainsKey ("area"))
{
if (RouteData.DataTokens["area"] != null)
{
RouteData.Values.Add ("area", RouteData.DataTokens["areaRegistered"]);
}
else
{
RouteData.Values.Add ("area", "");
}
}