我在WebApi控制器中使用以下代码:
public static T GetCookieValue<T>(this HttpRequestMessage request, string key)
{
var cookieCollection = request.Headers.GetCookies();
Trace.TraceInformation(JsonConvert.SerializeObject(cookieCollection));
foreach (var cook in cookieCollection.Select(c => c.Cookies.FirstOrDefault(x => x.Name == key)).Where(cook => cook != null))
{
return (T)Convert.ChangeType(cook.Value, typeof(T));
}
return default(T);
}
用法
var myValue = this.Request.GetCookieValue<int>("activeTenant");
在客户端观看Fiddler我可以看到值的变化,但是在.NET方面,它一直给我相同的价值。是否存在某种导致此问题的Cookie或标头缓存?
以下是我想出的更多信息。我的WebApi控制器继承自另一个,此调用位于该基本控制器中。如果我在Sub-Classed控制器中进行调用,它可以正常工作。所以现在我在想这是Autofac把我的缓存请求交给我了吗?