Я хочу передать токен Kerberos через HTTP-вызов на сервер, используя WCF.
У меня есть фрагмент кода, который успешно это делает.Но это работает, только если я делаю запрос к HTTPS URI.
var httpBinding = new WebHttpBinding(WebHttpSecurityMode.Transport) { MaxReceivedMessageSize = Int32.MaxValue };
httpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
httpBinding.Security.Transport.Realm = "MyCompany.com";
var endPoint = new EndpointAddress("https:xxxxxxxx.com/my/service); // This works
var endPoint = new EndpointAddress("http:xxxxxxxx.com/my/service); // This does not work
var channelFactory = new ChannelFactory<IMyServiceContract>(httpBinding, endPoint);
channelFactory.Endpoint.Behaviors.Add(new WebHttpBehavior());
_channel = channelFactory.CreateChannel();
_channel.ConsumeService();
Если я делаю запрос через канал, и если конечной точкой является https.Он работает, и я могу убедиться, что маркер Kerberos находится в запросе HTTP.
Если конечной точкой службы является HTTP, выдается ошибка:
System.ArgumentException : The provided URI scheme 'http' is invalid; expected 'https'.
Parameter name: via
Может кто-нибудь сообщить мне, как настроитьWCF, чтобы он отправлял токен Kerboros с HTTP URI.
С уважением, Кевин