cookies – 如何读取dot net core中的cookie过期?

我看到您可以在向响应添加新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获取它.

点赞