-1

我使用 VS 2012 创建了一个新的 mvc 4 项目。现在我运行它打开 Home/Index 的应用程序,因为它在 RouteConfig.cs 中设置为默认值。我想将帐户/登录作为我项目的第一页。我尝试通过将默认路由更改为 Account/Login 来做到这一点,但这对我不起作用。谁能让我知道除此之外我还有什么需要注意的吗

4

2 回答 2

0

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

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

将上述内容更改为controller="Account", action="Login"确实会处理您在 IIS 中的站点上配置的任何指定主机头上的任何请求。但是,它不会重定向任何具有合法路由的用户。

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

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

希望这可以帮助。

于 2012-09-06T15:54:22.910 回答
0

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

[Authorize]
public class HomeController : Controller {
    ...
}
于 2012-09-06T15:30:27.160 回答