.net core 使用cookie进行认证,在Chrome、360等浏览器中登录正常。在IE浏览器中无法登录,抓包发现,没有把cookie发送给服务器。asp.net mvc中cookie在IE10上有类似问题,.net core 如何处理这个?
登录代码中有没有指定cookie的超时时间
await context.SignInAsync(
CookieAuthenticationDefaults.AuthenticationScheme,
claimsPrincipal,
new AuthenticationProperties
{
IsPersistent = isPersistent,
ExpiresUtc = DateTimeOffset.Now.Add(_cookieAuthOptions.ExpireTimeSpan)
});
指定了 在其他浏览器就没毛病
@Impossible: 我们从没遇到过这个问题
@dudu: 通过Fillder抓包发现
Chrome:
IE抓包:
明显缺少了cookie的一部分
@Impossible: 这个根本不是登录cookie
@dudu:wjlogin=CfDJ8FKrkNKldJFMng291rQiRC7lYGHUm2CUm3x2nAlU6whVFRUhHKb7AM_-BpjZDzLDAMOYPFaJD_dJxJd_HRe9b3Ax9r67NDtTz6RTVp5nbUCNLFKe5Hc_66T3WaLn332SM44xBYqYNk6vwTKQYjBgWVZ0MOsnYcb9UPJOlr6uQ4YkUBD1qfFFni2yefBWcppKt5zfBDqes6duFgjNv_p1cBaaYR2hUGeUZ5c7-tJ7W1KWmVaNsVeXJuhPgZTL-OGoFumac21SuGV9Hz7ZXG0JvrPXbJIHHtkYWjcqrkDxqBIWM7RlItJv83nE8z14jVtw_DWAJ8zxg7s0TzdlJQ1pmb-03rH6ve5F5NmztXVfLIncAIB192fX5y1SmeEvvRJNGq30lC68k5_a3FYx8xmWca_lUdhraxWm31d6qjbTtJ578vuICOA8aI4ORZE2w2oSF6wHj-j-c4S6YGXhKp7K97S_titmGZuCcx4_CcFMRWP6Uea1cnRGySrBV-1-qFjFGL1XifUZFUPz0MD--l7EG5JQHaUv5Ld98xD1__HlgMUkJCm0wrE1kymeOUUBxQWkSR6qGERDm_GLjNcLo1RWlfyD8ynPhRYkrHgzh93eialJ9hn1IVTAWsfyD8-_SBijabvj7EHZUh2n9oOK42TIDDH5F-yleAYweIrimNacjr8dVYs0R01ft5JvoxmTrZvZzDBwq1OmBi_CJzFec52ACh1YxE_qUffKPTX_jxPXGZq7Il_zDRUsMEc_JYiy4kbufkVMJn4NLnPLuUXyG9R5knIDQBNSSOc-V_ZS68395WQgD6afLCmtbtVKwlC63NKHrQRAhkWlzO0fenGQ3RXjB1eZ0d5CdsQhAflL7ckk9896mOPEc0U2msnm4Bb6eTrmgONwnp-wRn-0kZRtXM6s-C8
登录cookie是这个,但是在IE下也没有,抓包发现登录之后,进入了需要授权的页面,但是立马就返回登录页了。
@Impossible: 看一下登录后服务器响应给IE的cookie的超时时间
@dudu: expires=Fri, 25 May 2018 18:22:05 GMT; domain=; path=/; samesite=lax; httponly
这是服务器响应给IE的过期时间,设置的时间比较长。
@Impossible: domain怎么是空,.AddCookie
时需要设置options.Cookie.Domain
@dudu: 汗,这个设置的有,在本地测试的时候去掉了,上传的时候忘了加上了。加上就好了,但是为啥在其他浏览器上就可以,IE就不行呢。
@Impossible: 与众不同就是IE的特点
@dudu: 哈哈,谢谢站长了。第一次用.net core正式开发项目,确实遇到了不少问题。