.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です。