ASP.NET Core Razor Pages如何设置启动时默认显示登录页
Razor Pages 设置登录页为默认启动页操作步骤
你可以按照以下两种方式实现,优先推荐第一种路由配置方案,无额外跳转开销:
方案一:配置根路径路由映射(推荐)
这个方案可以让用户访问站点根域名时直接加载登录页,地址栏保留根路径,无额外重定向。
- 打开项目根目录下的
Program.cs文件 - 找到注册Razor Pages服务的代码段,追加路由约定配置,示例代码如下:
// 替换原有builder.Services.AddRazorPages()代码,注意匹配你自己的登录页路径 builder.Services.AddRazorPages().AddRazorPagesOptions(options => { // 路径规则:相对于Pages文件夹,去掉.cshtml后缀,开头加斜杠 // 例1:登录页路径是 Pages/Login.cshtml → 填"/Login" // 例2:登录页路径是 Pages/Account/Login.cshtml → 填"/Account/Login" options.Conventions.AddPageRoute("/Account/Login", ""); });
- 保存文件后重启应用,访问根路径测试即可。
方案二:默认页重定向(备选)
如果你不需要保留根路径展示,可以直接在默认生成的Index页添加跳转逻辑:
- 打开
/Pages/Index.cshtml.cs文件 - 在
OnGet方法中添加重定向代码:
public IActionResult OnGet() { // 路径填写规则和方案一一致 return RedirectToPage("/Account/Login"); }
注意:这个方案会产生一次302跳转,用户访问根路径后地址栏会跳转到登录页的实际路由地址。
常见问题排查
- 如果配置后不生效:先检查登录页路径是否填写正确,不要加
.cshtml后缀,不要包含Pages文件夹前缀 - 如果项目用的是.NET Core 3.1/.NET 5版本:路由配置写在
Startup.cs的ConfigureServices方法里,代码逻辑和上面完全一致 - 如果配置了全局身份认证授权:这个路由规则优先级高于授权跳转,不会出现带
ReturnUrl参数的跳转地址
内容的提问来源于stack exchange,提问作者AlexJames
相关产品推荐
相关产品推荐

