登录后ASP.NET MVC认证用户被指向错误的路由

时间:2009-04-24 15:04:38

标签: c# asp.net-mvc asp.net-mvc-routing

我正在使用Visual Web Developer Express(暂时)使用1.0版本构建ASP.NET MVC应用程序。我正在使用SqlMembership Provider和表单身份验证来处理站点的安全性。我的网站安全性要求用户在看到任何内容之前登录 - 除了登录页面本身之外没有匿名用户页面。

我已经更改了我的global.asax.cs中的路由,如下所示:

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

我在我的本地IIS(Windows XP)上发布了应用程序并点击虚拟目录,如下所示:http://mymachinename/App/。我按预期被定向到登录(帐户/登录)页面。但是,在使用新用户帐户成功登录后,我被重定向到Home / Index而不是Patient / Search。 Home控制器和Index视图都仍然存在于应用程序中,因为我还没有删除它们(我们可能决定将主页显示为应用程序的第一页)。

我即将从项目中删除Home控制器和关联的视图,因为我已经尝试了许多其他的东西,包括从头开始的干净发布,重新启动Web服务器和清除浏览器缓存。但我很好奇为什么会发生这种情况,因为我在我的任何项目文件中找不到对Home / Index的任何其他引用,包括global.asax.cs和web.config。有人有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

主页/索引是否有可能被定义为web.config中的defaultUrl?

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