使用WebChannelFactory在授权标头中输入密码

时间:2011-11-28 19:07:09

标签: c# wcf rest http-headers

我正在尝试构建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”)

0 个答案:

没有答案