4

我正在遵循http://blogs.msdn.com/b/astoriateam/archive/2010/07/21/odata-and-authentication-part-6-custom-basic-authentication.aspx中描述的身份验证方法

我能够使用 ASP.NET 使用服务(根本不是问题)。现在我想创建一个纯 HTML 页面并使用“OData Javascript 库”(datajs)访问该服务。

如果我禁用身份验证和数据请求,它工作正常。我找不到有关如何使用“datajs”(与 OData.Request 和/或 OData.Read 一起使用时)发送身份验证标头信息的任何示例代码。

谁可以帮我这个事?

4

2 回答 2

3

如果您使用帖子中描述的基本身份验证,则可以使用 OData.request 的请求参数来传递用户名和密码。

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

你可以这样写:

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

请注意,这不适用于跨域 AJAX。

希望这可以帮助!

于 2011-09-02T17:47:41.253 回答
0

如果您使用 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  
     });
于 2017-05-17T09:40:20.827 回答