Как передать заголовок аутентификации в службу OData - PullRequest
3 голосов
/ 17 августа 2011

Я использую метод аутентификации, описанный в http://blogs.msdn.com/b/astoriateam/archive/2010/07/21/odata-and-authentication-part-6-custom-basic-authentication.aspx

Я могу использовать службу, используя ASP.NET (не проблема). Теперь я хотел бы создать простую HTML-страницу и получить доступ к сервису, используя «OData Javascript Library» (datajs).

Если я отключаю аутентификацию и запрашиваю данные, все работает нормально. Я не смог найти пример кода о том, как отправить информацию заголовка аутентификации с помощью «datajs» (при использовании с OData.Request и / или OData.Read).

Может ли кто-нибудь помочь мне в этом?

Ответы [ 2 ]

3 голосов
/ 02 сентября 2011

Если вы используете обычную аутентификацию, как описано в посте, вы можете использовать параметр запроса OData.request для передачи имени пользователя и пароля.

http://datajs.codeplex.com/wikipage?title=datajs%20OData%20API#OData.request

Вы могли бы написать что-то вроде:

OData.request({requestUri:"...", user:"user", password:"secret"}, function (data) { ... });

Обратите внимание, что это не будет работать с междоменным AJAX.

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

0 голосов
/ 17 мая 2017

Если вы используете библиотеку datajs для интеграции сервисов, то вы можете либо использовать метод выше для сервиса odata, либо использовать метод ниже, как показано в примере.Здесь я установил заголовки в переменной «oHeader» и передал ее с помощью функции «btoa», которая кодирует учетные данные.

  var oHeaders = {};   
  var uName="abc";
  var pass="123";
  var requrl="{service path}";

   oHeaders['Authorization'] = "Basic " + btoa(uName +':'+ pass);

     var request = {
         headers: oHeaders,
         requestUri: requrl,
         method: "GET",
     };
     OData.request(request, function(data) {
               //  success block    
     }, function(data) {
               //  error block  
     });
...