如何在ASP.NET Core Razor Pages设置登录路径?遇路径格式报错
ASP.NET Core Razor Pages 登录路径设置及路径格式报错解决
报错重现
你遇到的报错信息如下:
ArgumentException: The path in 'value' must start with '/'. (Parameter 'value')
即使代码中设置了options.LoginPath = "/Login",仍触发该错误,对应的配置代码:
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(options => { options.LoginPath = "/Login"; });
可能的原因及解决办法
- 检查字符串转义问题:如果代码是从HTML页面复制而来,可能携带了HTML转义字符(比如
"),实际运行时会被解析为\"/Login\",导致路径格式错误。确保代码中直接使用原生双引号包裹路径:options.LoginPath = "/Login";。 - 排查配置覆盖情况:检查项目后续代码是否修改了
LoginPath的值,比如误将其改成不带开头/的相对路径(如"Login")。可以在配置后添加调试代码确认最终值:Console.WriteLine(options.LoginPath); - 使用PathString类型显式赋值:避免字符串隐式转换带来的问题,直接用
PathString类型初始化路径:options.LoginPath = new PathString("/Login"); - 确认Razor Pages路由匹配:确保
Login页面的路由配置正确,Login.cshtml的@page指令没有自定义非根路径的路由(比如如果页面路由是/Account/Login,则登录路径要对应改为"/Account/Login")。
内容的提问来源于stack exchange,提问作者user123456
相关产品推荐
相关产品推荐

