我正在尝试构建REST服务和客户端,我需要通过HTTP请求发送一些授权信息。但是,当我在服务器上检查时,授权标头是空的。 这是我在客户端代码上获得的最好的结果:
WebChannelFactory<IAdminService> cf =
new WebChannelFactory<IAdminService>(agency.Value);
cf.Credentials.UserName.UserName = "admin";
cf.Credentials.UserName.Password = "passw0rd";
IAdminService channel = cf.CreateChannel();
List<Car> cars = channel.GetCars();
这是服务代码,试图检查标题,但它是空的:
[WebGet(UriTemplate = "cars")]
[OperationContract]
Cars GetCars()
{
WebOperationContext ctx = WebOperationContext.Current;
string authHeader = ctx.IncomingRequest.Headers[HttpRequestHeader.Authorization];
Console.WriteLine("authHeader={0}", authHeader);
if (authHeader == null)
{
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.Unauthorized;
return new Cars();
}
return CarDatabase.Instance.GetCars();
}
对我所缺少的任何帮助都将不胜感激。 (现在不需要加密任何东西,只需在正确的位置发送“admin”和“passw0rd”)