我正在使用HttRequestMessage,并在IHttpFilter中添加一个cookie,如下所示:
public IAsyncOperationWithProgress<HttpResponseMessage, HttpProgress> SendRequestAsync(HttpRequestMessage request)
{
var c = new HttpCookiePairHeaderValue("SSOAutologonCertificate", "true");
request.Headers.Cookie.Add(c);
return InnerFilter.SendRequestAsync(request);
}
使用Fiddler我可以看到cookie已正确添加到传出请求中。但是,回复是自动重定向。当fiddler捕获该传出请求时,该cookie不再设置在http标头中 - 它似乎已被遗忘。
这是预期的行为吗?还是一个bug?如果是预期的行为,我可以做些什么来改变它吗?
另一方面,如果我将cookie添加到HttpBaseProtocolFilter对象上的Cookie集合中,那么一切都按预期工作,并且每个自动重定向查询都有cookie。当然,虽然现在可以使用,但这完全违背了IHttpFilter的目的。 :-)在Windows应用商店应用(在Windows 10技术预览版上运行)中观察到此行为。
顺便说一句,我花了一些时间试图弄清楚如何进入Windows.Web.Http命名空间的.NET源代码,但似乎没有任何工作(我可以进入其他.NET源代码)。这些Windows组件文件是否有特殊技巧(该模块是Windows.Web.winmd)。提前致谢!