asp.net核心身份cookie大于4096个字符

时间:2018-01-21 13:19:51

标签: asp.net asp.net-identity

我正在使用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个字符。“:

Cookie is too big error

你知道为什么auth cookie如此之大? 感谢。

0 个答案:

没有答案