ASP.NET Core 登录中 ReturnUrl 为 null

Fel*_*lix 5 c# asp.net authentication asp.net-core-mvc

我有带有个人帐户的 ASP.NET Core 应用程序;与 VS2017 生成的非常相似。出于测试目的,我将[Authorize]属性放在About()家庭控制器中的操作上。我按预期重定向到登录页面,并且看到该 URL http://localhost:5000/Account/Login?ReturnUrl=%2FHome%2FAbout- 也如预期。但是,在 POST Login 方法中 ReturnUrl 为 null。我在帐户控制器中有登录方法:

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginInputModel model) {
...
}
Run Code Online (Sandbox Code Playgroud)

我还尝试ReturnUrl明确地作为参数,无论是否带有[FromQuery]. 在所有排列中它都是空的。

has*_*san 4

您应该确保您正在使用

Html.BeginForm("Login", "Account", new {ReturnUrl = Request.QueryString["ReturnUrl"] })


[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginInputModel model, string ReturnUrl) {
...
}
Run Code Online (Sandbox Code Playgroud)