Silverlight OOB应用程序中的请求缺少凭据

Silverlight OOB应用程序中的请求缺少凭据,silverlight,out-of-browser,Silverlight,Out Of Browser,我正在编写一个简单的Silverlight应用程序,其中包含以下代码,我认为这是相当标准的: WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp); var request = new WebClient(); var cred = new NetworkCredential(Server.UserName, Server.Password); request.Credentials = cred; request

我正在编写一个简单的Silverlight应用程序,其中包含以下代码,我认为这是相当标准的:

WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
var request = new WebClient();

var cred = new NetworkCredential(Server.UserName, Server.Password);
request.Credentials = cred;
request.UseDefaultCredentials = false;

request.DownloadStringCompleted += TestServerCompleted;
var uri = new Uri(Server.GetRequestUrl(Methods.ping));
request.DownloadStringAsync(uri);

然而,当我在Fiddler中查看请求时,没有任何凭据添加到头中。我错过了什么?这里不应该有“Authorization:Basic…”标题吗?

试试这样的东西

        HttpWebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
        HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
        req.UseDefaultCredentials = false;
        req.Credentials = ew NetworkCredential(Server.UserName, Server.Passwor

        req.ContentType = "text/xml;charset=\"utf-8\"";
        req.Accept = "text/xml";
        req.Method = "POST";
        return req;

        req.BeginGetResponse((IAsyncResult asynchronousResultResponse) =>
            {
                try
                {
                    HttpWebRequest requestResponse = (HttpWebRequest)asynchronousResultResponse.AsyncState;
                    HttpWebResponse response = (HttpWebResponse)requestResponse.EndGetResponse(asynchronousResultResponse);
                    Stream streamResponse = response.GetResponseStream();
                    StreamReader streamRead = new StreamReader(streamResponse);
                    string responseString = streamRead.ReadToEnd();

                    //Your response is here in responseString

                    streamResponse.Close();
                    streamRead.Close();
                    response.Close();
                }
                catch (Exception e)
                {
                    Callback(null, e);
                }
            }, webRequest);

我希望它能有所帮助,即使是两个月后……

AFAIK身份验证挑战是由服务器生成的,因此如果服务器不允许身份验证,则您的凭据将无法通过。