1

我在 .NET 中有一个 WCF 数据服务,我在 Phonegap 中使用 datajs 使用这个服务。我正在尝试实现此处描述的身份验证: //goo.gl/0xQvC,并使用 OData.read 方法发送凭据。当我使用 HttpContext.Current.Request.Headers["Authorization"] 读取服务中的凭据时,我发现它们是空的。我做错了什么?

服务代码:

[ServiceBehavior( IncludeExceptionDetailInFaults = true )]
    public class TeyunaDataService : DataService< Meteora.TeyunaServices.Models.TeyunaContext >
    {
        public static void InitializeService(DataServiceConfiguration config)
        {
            config.SetEntitySetAccessRule("Clientes", EntitySetRights.AllRead );
            config.SetEntitySetAccessRule("Transacciones", EntitySetRights.All);

            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
            config.UseVerboseErrors = true;
        }

        public TeyunaDataService()
        {
            this.ProcessingPipeline.ProcessingRequest += new EventHandler<DataServiceProcessingPipelineEventArgs>(OnRequest);
        }

        void OnRequest(object sender, DataServiceProcessingPipelineEventArgs e)
        {
            var auth = HttpContext.Current.Request.Headers["Authorization"]; //This is empty                
        }
    }
}

Javascript客户端代码:

OData.read({ requestUri: url, user: "pruebausr", password: "passprb" },    
    function (data, request) {
        // ... code to procesing data (It works fine)

    },  function(err) {
            $.mobile.hidePageLoadingMsg();
            alert("Error al obtener clientes. " + err.message);
    }
);  

服务 web.config 在这里: https ://gist.github.com/3746043

我正在使用:WCF 数据服务 5. IIS Express。

4

0 回答 0