任何人都可以帮忙,我正在尝试通过通道工厂调用休息服务,但发送我的凭据......休息服务使用 Windows 身份验证。
但是使用以下代码,我得到“此工厂启用了手动寻址,因此发送的所有消息都必须预先寻址。” 使用 GetMessage 时出错
我知道我的服务就像我删除 Windows 身份验证一样有效!但是在打开 Windows 身份验证且不更改 clientCredentials 的情况下,我收到了 BAD REQUEST,我认为这很正常......所以我需要发送我的客户端凭据
我有点失落。
ChannelFactory<IService> cf = new ChannelFactory<IService>(new WebHttpBinding(), "http://localhost:8000");
var defaultCredentials = cf.Endpoint.Behaviors.Find<ClientCredentials>();
cf.Endpoint.Behaviors.Remove(defaultCredentials);
// step two - instantiate your credentials
ClientCredentials loginCredentials = new ClientCredentials();
loginCredentials.UserName.UserName = "Test";
loginCredentials.UserName.Password = "test";
// step three - set that as new endpoint behavior on factory
cf.Endpoint.Behaviors.Add(loginCredentials); //add required ones
IService channel = cf.CreateChannel();
Console.WriteLine(channel.GetMessage("Dhananjay Get"));
Console.WriteLine(channel.PostMessage("Dhananjay Post"));