在ASP.Net Core中,表单身份验证可能不起作用的原因有很多。以下是一些可能的解决方法:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.Cookie.Name = "YourCookieName";
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(30);
options.LoginPath = "/Account/Login";
options.AccessDeniedPath = "/Account/AccessDenied";
});
app.UseAuthentication();
[HttpPost]
public async Task Login(LoginViewModel model)
{
// 身份验证逻辑
}
if (ModelState.IsValid)
{
// 身份验证逻辑
await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, authProperties);
return RedirectToAction("Index", "Home");
}
return LocalRedirect(returnUrl);
如果以上方法仍然无法解决问题,可以尝试查看日志文件以获取更多详细的错误信息,或者使用调试工具来检查请求和响应的细节。