2015-11-06 2 views
3

Я пытаюсь выполнить базовую проверку подлинности на основе перекрестного домена в Silverlight в стеке браузера на веб-сервере, у меня есть доступ к компьютеру, хотя у меня нет доступа к коду или его размещению. Всякий раз, когда я пытаюсь следующий код я получаю 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 запроса OPTIONS,

$.ajax({ 
    type: "GET", 
    url: "http://www.example.com", 
    global: false, 
    beforeSend: function (xhr) { 
     xhr.setRequestHeader("Authorization", "Basic " + btoa("username:password")); 
    }, 
}); 

Если изменить http://www.example.com, чтобы не быть перекрестный домен вызывают оба примера кода. Возможна ли базовая аутентификация кросс-домена в этом сценарии?

ответ

0

Посмотрите на следующую ссылку: making a Service Available Across Domain Boundaries in silverlight.

Я использую основную авторизацию на протяжении нескольких лет, но я использую его с помощью

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

ПРИМЕЧАНИЯ: Получается, что Silverlight обеспечивает HTTP обработки как в браузере и Client stack.By по умолчанию Silverlight использует браузер для обработки HTTP. Единственная проблема с этим заключается в том, что обработка HTTP-браузера поддерживает только методы запроса GET и POST.

Посредством этого вы должны иметь доступ к службе RESTful, которая позволяет использовать методы PUT и DELETE Http.

Я также смог использовать аутентификацию на предъявителя (JWT) с помощью этого метода.

Надеюсь, это поможет.

Смежные вопросы