2010-04-20 59 views
0

我有一个MVC网站与AD授权。这一切工作正常。我将该网站发布到网络服务器并直接致电该网站(http://intranet)。如果我还没有登录一段时间(我有一个30分钟的TTL授权cookie),我会提示登录,如果成功,我会重定向到homeController的索引视图。这很棒,和预期的一样。MVC网站 - 确保默认输入视图始终正确

如果我保持会话打开(浏览器打开)并浏览网站,如果我然后浏览回到http://intranet,我没有挑战,因为我最近已经过身份验证,但默认页面来自不同的控制器,而不是主页视图。

我该如何阻止这种情况发生?它不能成为一个会话设置,因为这不是一个新的会话,并且路由看起来是正确的 - 无论如何它们都不会被调用。

请MVC大师的建议....!

注册路线区块如下:

public static void RegisterRoutes(RouteCollection routes) 
    { 
     // standard MVC route regsitration 

     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      "PaginatedTimesheets",             // Route name 
      "{controller}/{action}/{page}/{view}",         // URL with parameters 
      new { controller = "Timesheets", action = "Index", page=0, view=0 } // Parameter defaults 
     ); 

     routes.MapRoute(
      "Default",            // Route name 
      "{controller}/{action}/{id}",       // URL with parameters 
      new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
     ); 
    } 

回答

0

什么是你的默认路由是什么样子?它应该转到您的路由中指定的默认控制器/操作。

+0

我确定它是正确的 - 我已将RegisterRoutes方法附加到原始注释。 – Klaptrap 2010-04-20 14:33:05

+0

去哪里?/Home还是/ Timesheets?你想要去哪里? – Jab 2010-04-20 15:40:23

+0

必须将default.aspx放入根目录,并将重定向放入MVC应用程序中。适用于本地服务器,但不适用于IIS服务器 - 不在IIS7/.NET4中搜索问题。 – Klaptrap 2010-04-21 09:25:08