我看到您可以在向响应添加新cookie时使用CookieOptions设置过期时间.但是,HttpContext.Request.Cookies返回一个IRequestCookieCollection,它似乎只给你键/值对.
有没有办法读取请求cookie的CookieOptions(特别是Expiration)?
我正在使用.Net Core(1.0.0-preview2-003131)
注意:我需要在请求处理中读取任意cookie的到期,而不是框架生成的auth cookie到期.
最佳答案 我通过对“OnValidatePrincipal”事件作出反应来解决这个问题.
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
...
Events = new CookieAuthenticationEvents
{
OnValidatePrincipal = CookieAuthenticationEventHandler.ValidatePrincipalAsync
}
});
一旦验证了主体,我就可以在我的ValidatePrincipalAsync中使用属性context.Properties.ExpiresUtc访问cookie时访问
为了能够在我的控制器中获得该expires属性,我将以这种方式在我的HttpContext中添加它:
context.Request.HttpContext.Items.Add("ExpiresUTC", context.Properties.ExpiresUtc);
但我对这部分并不满意,也许有人可以给你一个更好的方法直接在控制器中访问它,而不必从OnValidatePrincipal获取它.