【发布时间】:2016-02-08 00:31:06
【问题描述】:
我正在尝试在浏览器堆栈上的 Silverlight 中对 Web 服务器进行跨域基本身份验证,我可以访问计算机,尽管我无权访问代码或它的托管方式。每当我尝试使用以下代码时,我都会得到一个NotSupportedException,
var httpClient = new HttpClient();
WebRequest.RegisterPrefix("http://", WebRequestCreator.BrowserHttp);
var byteArray = Encoding.UTF8.GetBytes("username:password");
httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
var response = await httpClient.GetAsync("http://www.example.com", HttpCompletionOption.ResponseHeadersRead);
我也尝试过使用 ajax 进行以下操作,但它变成了 OPTIONS 1.1 请求,
$.ajax({
type: "GET",
url: "http://www.example.com",
global: false,
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa("username:password"));
},
});
如果我将 http://www.example.com 更改为不是跨域调用,则两个代码示例都可以工作。在这种情况下是否可以进行跨域基本认证?
【问题讨论】:
标签: c# ajax silverlight basic-authentication