WebHttpBinding身份验证被忽略

时间:2011-04-05 10:12:48

标签: wcf webhttpbinding

我正在尝试将基本HTTP身份验证与REST服务一起使用,但调试代理显示根本没有发送任何身份验证标头,它们会被忽略!这是我的代码:

     WebChannelFactory<IMyService> factory = new WebChannelFactory<IMyService>(
        new WebHttpBinding(),
        new Uri("http://10.6.90.45:8081"));
     WebHttpBinding http = (WebHttpBinding) factory.Endpoint.Binding;
     http.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
     http.Security.Mode = WebHttpSecurityMode.TransportCredentialOnly;

     factory.Credentials.UserName.UserName = "username";
     factory.Credentials.UserName.Password = "password";

IMyService proxy = factory.CreateChannel();

proxy.SomeMethod();

...

HTTP请求未经授权使用客户端身份验证方案“Basic”。从服务器收到的身份验证标头是''。

服务器堆栈跟踪:    在System.ServiceModel.Channels.HttpChannelUtilities.ValidateAuthentication(HttpWebRequest请求,HttpWebResponse响应,WebException responseException,HttpChannelFactory工厂)    在System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest请求,HttpWebResponse响应,HttpChannelFactory工厂,WebException responseException,ChannelBinding channelBinding)    at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)    在System.ServiceModel.Channels.RequestChannel.Request(消息消息,TimeSpan超时)    在System.ServiceModel.Dispatcher.RequestChannelBinder.Request(消息消息,TimeSpan超时)    在System.ServiceModel.Channels.ServiceChannel.Call(String action,Boolean oneway,ProxyOperationRuntime operation,Object [] ins,Object [] outs,TimeSpan timeout)    在System.ServiceModel.Channels.ServiceChannel.Call(String action,Boolean oneway,ProxyOperationRuntime operation,Object [] ins,Object [] outs)    在System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall,ProxyOperationRuntime操作)    在System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

在[0]处重新抛出异常:    在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)    在System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&amp; msgData,Int32 type)  ...

0 个答案:

没有答案