Blazor登录页跳转至忘记密码页后自动重定向问题求助
Blazor未认证用户访问忘记密码页自动重定向问题解决方案
以下是几个排查和解决方向:
检查全局授权策略配置
如果你的Blazor应用设置了全局认证要求(比如通过FallbackPolicy强制所有路由需要认证),需要单独排除/forgetpassword路径。在Program.cs中调整中间件配置:// 配置全局授权策略 builder.Services.AddAuthorization(options => { options.FallbackPolicy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .Build(); }); // 对除了忘记密码页之外的路由应用授权中间件 app.UseWhen(context => !context.Request.Path.StartsWithSegments("/forgetpassword"), appBuilder => { appBuilder.UseAuthorization(); });或者在映射回退页时直接允许匿名访问该路径:
app.MapFallbackToPage("/_Host") .RequireAuthorization() .AllowAnonymous("/forgetpassword");验证登录页的导航逻辑
确认登录页的「忘记密码」链接使用正确的Blazor导航组件,比如:<NavLink href="/forgetpassword">忘记密码</NavLink>同时检查登录页是否存在初始化时强制重定向的逻辑,比如
OnInitializedAsync中如果错误判断了认证状态,导致用户跳转后又被拉回登录页。若有这类代码,需添加路径判断排除/forgetpassword场景。排查自定义AuthenticationStateProvider
如果应用使用了自定义的AuthenticationStateProvider,检查其状态变更逻辑是否存在强制跳转到登录页的代码。若有,需添加条件判断,当当前路径为/forgetpassword时不触发重定向。确认忘记密码页的特性与路由
确保页面的@page "/forgetpassword"路由无拼写错误,且@attribute [AllowAnonymous]位于页面最顶部,没有与[Authorize]等其他授权特性冲突。
内容的提问来源于stack exchange,提问作者Utsav Basyal
相关产品推荐
相关产品推荐

