You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC中如何通过路由访问/login跳转至登录页(含Identity Area)

实现根路径/login指向Identity登录页的路由配置

要让网站根路径下的/login直接跳转到Identity独立Area的登录页,在ASP.NET Core MVC中可以通过以下两种方式配置路由:

方法一:添加直接路由映射

在Startup.cs的Configure方法里,把自定义的/login路由规则放在默认路由之前(路由匹配按顺序执行,优先级更高),直接将请求指向Identity区域的Account控制器Login动作:

app.UseEndpoints(endpoints =>
{
    // 配置/login路由,直接映射到Identity的登录页
    endpoints.MapControllerRoute(
        name: "login-shortcut",
        pattern: "login",
        defaults: new { area = "Identity", controller = "Account", action = "Login" }
    );

    // 保留原有默认路由
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}"
    );

    // 不要移除Identity的Razor Pages路由
    endpoints.MapRazorPages();
});

方法二:配置路由重定向(可选)

如果希望浏览器地址栏显示完整的Identity登录页路径(即触发重定向),可以用这种方式:

app.UseEndpoints(endpoints =>
{
    // 当访问/login时,重定向到Identity的登录页
    endpoints.MapGet("/login", context =>
    {
        context.Response.Redirect("/Identity/Account/Login");
        return Task.CompletedTask;
    });

    // 其他原有路由配置
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}"
    );
    endpoints.MapRazorPages();
});

关键注意点

  • 确保Identity的Area路由正常工作:默认ASP.NET Core Identity的Razor Pages已经自带Area配置,无需修改IdentityHostingStartup.cs。
  • 如果你的Identity登录页的控制器/动作不是默认的Account/Login,记得同步修改路由里的controller和action参数。
  • 路由顺序不能乱:自定义的/login路由必须放在默认路由前面,否则会被默认路由的规则拦截。

内容的提问来源于stack exchange,提问作者Lenny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 00:32:13