首页 > 解决方案 > 在代理后面返回双编码的 url

问题描述

我已经配置了登录路径:

 services.AddAuthorization()
         .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
         .AddCookie(options => options.LoginPath = new PathString("/account/login"));

我的一项操作(比方说/go)是用[Authorize]属性保护的。

问题是当我作为未经授权的用户点击提到的操作时,返回 url 是双重编码的:

/account/login?ReturnUrl=%252Fgo

仅当应用程序在反向代理后面提供时才会发生(配置如下:https ://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-apache?view=aspnetcore-3.1#configure -a-代理服务器

在本地运行或不使用反向代理时,正确构建返回 url;

/account/login?ReturnUrl=%2Fgo

这在使用 fe 时会导致一些问题LocalRedirect(returnUrl)。我想避免明确解码它。

我能做些什么?

标签: c#asp.net-core

解决方案


推荐阅读