WCF数据服务自定义基本身份验证

时间:2012-09-17 22:54:22

标签: wcf authentication cordova datajs

我在.NET中有一个WCF数据服务,我在Phonegap中使用datajs来使用这个服务。我正在尝试实现此处所述的身份验证:http://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。

0 个答案:

没有答案