1

.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 Data Services 5.IISExpressです。

4

0 に答える 0