在重定向中忽略在Windows.Web.Http.HttpRequestMessage中设置的Cookie

时间:2015-01-10 23:46:07

标签: winrt-httpclient

我正在使用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)。

提前致谢!

0 个答案:

没有答案