我試圖從在線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文件,我可以看到它們都允許*,因此我應該能夠訪問我想要的內容。