Routing 如何在MVC4中重定向到登录视图

Routing 如何在MVC4中重定向到登录视图,routing,asp.net-mvc-4,visual-studio-2012,Routing,Asp.net Mvc 4,Visual Studio 2012,我已经使用VS 2012创建了一个新的mvc 4项目。现在我运行应用程序,它打开主页/索引,因为它在RouteConfig.cs中设置为默认值。我想将帐户/登录作为我的项目的第一页。我尝试通过将默认路径更改为Account/Login来实现这一点,但这对我不起作用。有人能告诉我除此之外还有什么我需要注意的吗?似乎您的整个应用程序都需要对用户进行身份验证,甚至您的家庭控制器也是如此。您可以将authorized属性添加到HomeController,它应该要求访问它的用户首先登录 [Authori

我已经使用VS 2012创建了一个新的mvc 4项目。现在我运行应用程序,它打开主页/索引,因为它在RouteConfig.cs中设置为默认值。我想将帐户/登录作为我的项目的第一页。我尝试通过将默认路径更改为Account/Login来实现这一点,但这对我不起作用。有人能告诉我除此之外还有什么我需要注意的吗?

似乎您的整个应用程序都需要对用户进行身份验证,甚至您的家庭控制器也是如此。您可以将authorized属性添加到HomeController,它应该要求访问它的用户首先登录

[Authorize]
public class HomeController : Controller {
    ...
}

修改默认路由与强制用户登录页面不同

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
将上述内容更改为
controller=“Account”,action=“Login”
确实会处理在IIS中已在站点上配置的任何指定主机头上传入的任何请求。但是,它不会使用合法路由重定向任何用户

为此,您确实需要使用@mreyeros提到的
[Authorize]
属性。您可以在站点中的每个控制器上执行此操作,也可以创建一个新的基本控制器,该控制器可以从项目中的所有其他控制器继承

如果你真的只想重定向,你可以采取同样的方法(新的、属性化的基础控制器从中继承)并创建你自己的RedirectOnLandingAttribute,但是我认为你想要实现的最好方法是利用框架已经提供的东西


希望这有帮助。

我想将帐户/登录设置为我的起始页。