我正在使用 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 已正确添加到传出请求中。但是,回复是自动重定向。当提琴手捕获该传出请求时,该 cookie 不再设置在 http 标头中 - 它似乎已被遗忘。
这是预期的行为吗?还是一个错误?如果这是预期的行为,我能做些什么来改变它吗?
另一方面,如果我将 cookie 添加到 HttpBaseProtocolFilter 对象上的 Cookie 集合中,那么一切都会按预期工作,并且每个自动重定向查询都存在 cookie。当然,虽然这暂时可行,但这完全违背了 IHttpFilter 的目的。:-) 在 Windows 商店应用程序(在 Windows 10 技术预览版上运行)上观察到了这种行为。
顺便说一句,我花了一些时间试图弄清楚如何进入 Windows.Web.Http 命名空间的 .NET 源代码,但似乎没有任何效果(我可以进入其他 .NET 源代码)。这些windows组件文件有没有什么特别的技巧(模块是Windows.Web.winmd)。
提前致谢!