ASP.NET 5 - 访问响应中的cookie

时间:2016-01-15 16:12:28

标签: asp.net asp.net-mvc

在ASP.NET 5中,您可以非常轻松地访问请求中发送的cookie:

 var request = httpContextAccessor.HttpContext.Request;
 var cookie = request.Cookies["somecookie"];

但是,假设在请求期间,cookie已由应用程序的其他部分更新。在这种情况下,请求中会有一个过时的cookie,新更新的cookie将在当前响应中。

我想确保我一直检查"最新的" cookie,因此我想在响应中存在cookie,使用该版本,覆盖请求中的cookie。但是,当我想要在响应中访问cookie时,就是这样的事情 - 没有API可以这样做吗?

 var response = httpContextAccessor.HttpContext.Response;
 response.Cookies.?

如何实现这一目标?如果可能的话,我想避免在其他地方管理这种状态,而且似乎我应该能够做到这一点。

1 个答案:

答案 0 :(得分:0)

看起来这个API不会很快到来,所以最后,我不得不重做各种中间件,改变cookie状态的管理方式。我现在在一个对象实例(DTO)中保持我的状态,该对象实例作用于当前的http请求。如果我的应用程序的任何部分需要访问当前状态,则它会注入该对象(DI)。最后,我有一些管理cookie的中间件。中间件在请求开始时从cookie恢复DTO,并在响应期间将DTO写入cookie。我确保这个中间件是唯一能够触及cookie本身的东西,并且每个需要检查状态的东西才会注入DTO。

相关问题