我在登录RedirectToAction
后使用/Home/Index
,但无效。此外,/Home/Index
是[Authorized]
。我发现这个问题很神奇,无法找到解决这个问题的方法。这是一个非常奇怪的行为,就像在.Net Framework中一样,它按预期工作。此外,我在服务器或客户端上都没有错误。
这是代码:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null)
{
ViewData["ReturnUrl"] = returnUrl;
if (ModelState.IsValid)
{
var result = await signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
return RedirectToLocal(returnUrl);
}
return View(model);
}
return View(model);
}
private IActionResult RedirectToLocal(string returnUrl)
{
if (Url.IsLocalUrl(returnUrl)) return Redirect(returnUrl);
else return RedirectToAction("Index", "Home");
}
在响应标题中,我看到以下内容:
Request URL: http://localhost:8080/Account/Login
Request Method: POST
Status Code: 302 Found
...
Location: /
使用Redirect
它可以正常工作,我有一个位置:/Home/Index
。我不知道会发生什么。
我搜索过并发现了TempData
和Cookie的一些问题,但我没有使用它。
我需要更多代码,只需要它。我会发布它。