为BackgroundTransferRequest提供凭证(WP8)

时间:2013-10-07 12:52:16

标签: c# windows-phone-8 networkcredentials background-transfer

当我使用HttpWebRequest时,我使用以下代码来设置凭据

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlToCall);
request.Method = "GET";
request.Credentials = new NetworkCredential(username, pass);

在Windows Phone 8中使用BackgroundTransferService时,如何执行相同的操作。

供参考,我使用以下内容 http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202955%28v=vs.105%29.aspx
http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202959%28v=vs.105%29.aspx

*编辑: 身份验证方法是摘要 这是我使用浏览器下载文件时在Authorization Header中获得的内容。

Digest username =“adf”,realm =“bcd”,nonce =“XXXXXXXXX”,uri =“/ ans / 1268e52399.txt”,algorithm = MD5,response =“XXXXXXXXXXXXXXX”,qop = auth,nc = 00000001 ,cnonce =“XXXXXXXXXXXX”

1 个答案:

答案 0 :(得分:0)

不幸的是,BackgroundTranserService不支持此功能。一种可能的解决方案可能是为您的请求手动创建标题,如下所示:

var credentials = new UTF8Encoding().GetBytes(username + ":" +password);

var transferRequest = new BackgroundTransferRequest(transferUri);

transferRequest.Headers["Authorization"] ="Basic " + convert.ToBase64String(credentials);

不幸的是我现在无法测试这个,尝试一下让我知道你是怎么过的。