我在 .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。