Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 跨域基本身份验证_C#_Ajax_Silverlight_Basic Authentication - Fatal编程技术网

C# 跨域基本身份验证

C# 跨域基本身份验证,c#,ajax,silverlight,basic-authentication,C#,Ajax,Silverlight,Basic Authentication,我正在尝试在Silverlight中对web服务器的浏览器堆栈进行跨域基本身份验证,我可以访问计算机,尽管我无法访问代码或它的宿主方式。每当我尝试执行以下代码时,都会得到一个NotSupportedException var httpClient = new HttpClient(); WebRequest.RegisterPrefix("http://", WebRequestCreator.BrowserHttp); var byteArray = Encoding.UTF8.GetByte

我正在尝试在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尝试了以下内容,但它变成了一个选项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
为了不成为跨域调用,两个代码示例都可以工作。在这种情况下,是否可以进行跨域基本身份验证?

请查看以下有关的链接

我已经使用basicauth很多年了,但是我一直在使用它

注意:Silverlight在浏览器和客户端堆栈中都提供HTTP处理。默认情况下,Silverlight使用浏览器进行HTTP处理。唯一的问题是浏览器HTTP处理只支持GET和POST请求方法

通过这样做,您应该能够访问允许放置和删除Http方法的RESTful服务

我也能够通过这种方法使用承载(JWT)身份验证

希望这有帮助

WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);