从 ASP.NET Core Identity 的 403 页面中删除查询字符串

问题描述 投票:0回答:1

我正在使用 ASP.NET Core Razor Pages 和 Identity。当用户导航到某个授权路线

/secret
(他无法访问)时,我希望浏览器显示:

/403

但它实际上表明:

/403?ReturnUrl=%2Fsecret

我发现没有指向该查询字符串;它在登录页面上有意义,而不是在静态 403 页面上。

如何删除它?

asp.net-core razor-pages asp.net-core-identity asp.net-core-7.0
1个回答
0
投票

我在启动过程中指定了OnRedirectToAccessDenied

builder.Services.ConfigureApplicationCookie(x => {

  x.AccessDeniedPath = new PathString("/403");

  x.Event = new CookieAuthenticationEvents {
    OnRedirectToAccessDenied = context => {
      context.Response.StatusCode = 403;
      return Task.CompletedTask;
    }
  };

});

它手动处理每个 403 事件,有效地从原始 URL 中剥离查询字符串。

© www.soinside.com 2019 - 2024. All rights reserved.