Cookies 如何读取dot net core中的cookie过期信息?

Cookies 如何读取dot net core中的cookie过期信息?,cookies,asp.net-core,asp.net-core-mvc,.net-core,asp.net-core-1.0,Cookies,Asp.net Core,Asp.net Core Mvc,.net Core,Asp.net Core 1.0,我发现在响应中添加新cookie时,可以使用CookieOptions设置过期时间。但是,HttpContext.Request.Cookies返回一个IRequestCookieCollection,它似乎只提供键/值对 有没有办法读取请求cookie的CookieOptions(特别是过期日期) 我正在使用.NETCore(1.0.0-preview2-003131) 注意:我需要在请求处理中读取任意cookie的过期时间,而不是框架生成的auth cookie的过期时间。我通过对事件“On

我发现在响应中添加新cookie时,可以使用CookieOptions设置过期时间。但是,HttpContext.Request.Cookies返回一个IRequestCookieCollection,它似乎只提供键/值对

有没有办法读取请求cookie的CookieOptions(特别是过期日期)

我正在使用.NETCore(1.0.0-preview2-003131)


注意:我需要在请求处理中读取任意cookie的过期时间,而不是框架生成的auth cookie的过期时间。

我通过对事件“OnValidatePrincipal”的反应来获取该时间

然后,一旦主体被验证,我就可以访问cookie何时将在我的ValidatePrincipalAsync中过期,并与属性
context.Properties.ExpiresUtc

为了稍后在我的控制器中获取expires属性,我将以以下方式将其添加到我的HttpContext中:

context.Request.HttpContext.Items.Add("ExpiresUTC", context.Properties.ExpiresUtc);

但是我对这一部分不太满意,也许有人可以给你一个更好的方法,让你直接在控制器中访问它,而不必从OnValidatePrincipal获取它。

不,HTTP不包括任何关于请求发送的cookie的详细信息,只包括它们的名称和值。auth cookie解决方案之所以有效,是因为过期时间也嵌入到值中。

谢谢-尽管我需要为请求处理中的任意cookie阅读此内容,而不是为auth cookie阅读此内容。我明白了,我还没有这样做。让我们看看是否有其他人可以帮忙。@Daboul,你能找到如何读取auth cookie吗?我也需要这个。谢谢它存储在AuthenticationProperties集合中,如上面的另一个答案所示。您可以从cookie auth事件或调用HttpContext.AuthenticateTasync来获取它。我认为您可以直接在控制器内部获取它,因为它嵌入到值中。cookie值是序列化和加密的,您无法直接读取它。Cookie身份验证处理程序将其解密并反序列化为ClaimsPrincipal和AuthenticationProperties集合。然后我们可以手动解密它吗?如果可能的话,在控制器中,因为我们在那里有加密值。不容易。最好在控制器中调用HttpContext.AuthenticateTasync以获取解密的值。
context.Request.HttpContext.Items.Add("ExpiresUTC", context.Properties.ExpiresUtc);