Windows 8 如何将自定义授权标头添加到Windows应用商店应用程序OData客户端?

Windows 8 如何将自定义授权标头添加到Windows应用商店应用程序OData客户端?,windows-8,windows-runtime,wcf-data-services,odata,windows-store-apps,Windows 8,Windows Runtime,Wcf Data Services,Odata,Windows Store Apps,我正在使用Windows运行时构建Windows应用商店应用程序。我正在访问一个使用基本身份验证的OData服务。我正在使用库(Microsoft.Data.Services.Client.WindowsStore) 身份验证字符串是一种自定义格式,因此我不能只使用网络凭据(用户名、密码)。我需要自己将标题添加到我的DataServiceContext的每个请求中 我尝试使用以下代码: proxy.SendingRequest += (s, e) => { e.RequestHead

我正在使用Windows运行时构建Windows应用商店应用程序。我正在访问一个使用基本身份验证的OData服务。我正在使用库(
Microsoft.Data.Services.Client.WindowsStore

身份验证字符串是一种自定义格式,因此我不能只使用
网络凭据(用户名、密码)
。我需要自己将标题添加到我的
DataServiceContext
的每个请求中

我尝试使用以下代码:

proxy.SendingRequest += (s, e) =>
{
   e.RequestHeaders.Add("Authorization", authHeader);
}
但我收到了错误:

'System.Net.WebHeaderCollection' does not contain a definition for 'Add' and no extension method 'Add' accepting a first argument of type 'System.Net.WebHeaderCollection' could be found
您可以使用在生成请求之后、发送到服务器之前激发的新事件

有一种方法可用于设置标题。将该值设置为
null
以删除标题

proxy.SendingRequest2 += (sender, eventArgs) =>
{
    eventArgs.RequestMessage.SetHeader("Authorization", authHeader);
};
更多关于它的讨论:

SendingRequest2(及其弃用的前身SendingRequest)激发 在生成请求之后。WebRequest不允许您修改 构建后的URL。新事件允许您修改URL 在我们构建底层请求之前,让您完全控制 请求


你在很短的时间内提出并回答了自己的问题。有什么意义?@lontivero让互联网变得更好对我有帮助。谢谢