2013-10-30 58 views
1

我試圖從在線TFS服務器獲取信息。 OData服務的端點地址是:https://tfsodata.visualstudio.com/DefaultCollection如何與來自Silverlight 5應用程序的TFSOData服務交談

我嘗試與該服務進行身份驗證使用基本身份驗證按:

 _context = new TFSOData.TFSData(new Uri("https://tfsodata.visualstudio.com/DefaultCollection", UriKind.Absolute)); 

       _context.SendingRequest2 += (object sender, SendingRequest2EventArgs e) => 
       { 

        String creds = String.Format(CultureInfo.InvariantCulture, @"{0}\{1}:{2}", "mydomain", "myusername", "mypassword"); 
        var bytes = Encoding.UTF8.GetBytes(creds); 
        var credstring = Convert.ToBase64String(bytes); 
        e.RequestMessage.SetHeader("Authorization", "Basic " + credstring); 
       }; 

不幸的是,我總是從我的LoadCompleted回調的EventArgs回來時,我嘗試了異常,並運行在OData服務的查詢和當我知道它不應該的時候,我正在運行的查詢會回來。

{System.Security.SecurityException: Security error.} 

上午我做錯什麼安全明智?我已經在瀏覽器中測試了此odata服務的備用憑據,並且它們工作正常。

只是爲了重申,我在silverlight 5項目中這樣做。在使用e.requestheaders.add等之前,我使用過類似的方法在WPF中工作,但這在Silverlight中並不適用。

編輯:

我也從使用招注意到,這將在clientaccesspolicy.xml文件,然後繼續不上真正得到我從服務想要的數據。很明顯,這是WPF應用程序和Silverlight應用程序之間的區別,但是查看clientaccesspolicy.xml和crossdomain.xml文件,我可以看到它們都允許*,因此我應該能夠訪問我想要的內容。

回答

0

這是因爲服務器未設置爲允許跨源資源共享。

相關問題