在ASP.NET Core 2.2中,即使使用PasswordSignInAsync成功登录后,User.Identity.IsAuthenticated始终返回false的可能原因有以下几点:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.Cookie.Name = "YourCookieName";
options.LoginPath = "/Account/Login";
});
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
// ...
[HttpPost]
public async Task<IActionResult> Login(LoginViewModel model)
{
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(model.Username, model.Password, model.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
}
}
return View(model);
}
await _signInManager.SignInAsync(user, isPersistent: false);
如果上述解决方案都没有解决问题,可能需要进一步检查ASP.NET Core 2.2的版本兼容性、依赖项和代码逻辑等方面的问题。
领取专属 10元无门槛券
手把手带您无忧上云