我正在使用Identity来验证我的Asp.Net Core SPA应用程序中的用户。登录代码是:
public async Task<IActionResult> Login([FromBody]LoginModel loginModel)
{
var user =
await userManager.FindByNameAsync(loginModel.Name);
if (user != null)
{
await signInManager.SignOutAsync();
if ((await signInManager.PasswordSignInAsync(user, loginModel.Password, loginModel.RememberMe, false)).Succeeded)
{
return Json(true);
}
}
return Json(-1);
}
和我的startup.cs文件中与身份相关的代码部分是:
services.AddIdentity<User, IdentityRole<int>>(opts =>
{
opts.Password.RequiredLength = 1;
opts.Password.RequireNonAlphanumeric = false;
opts.Password.RequireLowercase = false;
opts.Password.RequireUppercase = false;
opts.Password.RequireDigit = false;
})
.AddEntityFrameworkStores<SampleAppContext>()
.AddDefaultTokenProviders();
用户类的定义如下:
public class User: IdentityUser<int>
{
public List<Access> AccessList { get; set; }
public int? PersonId { get; set; }
public Person Person { get; set; }
}
Person和Access是另外两个类。问题是,当我的应用程序尝试对用户进行身份验证并设置auth cookie时,devTools中会弹出此警告,并且浏览器无法存储cookie,并显示错误“来自url:http://localhost:5000/api/Account/Login的响应中将忽略Set-Cookie标头.Cookie长度应小于或等于4096个字符。“:
你知道为什么auth cookie如此之大? 感谢。