Вот исчерпывающий ответ, который я, наконец, нашел, протестировал и подтвердил.
A. Мой WCF клиент используется для построения EndPoint.Address динамически следовать
EndPointAddress myEdpintAddress = new EndPointAddress(stringURL);
Но в случае безопасной транспортировки (net.tcp) он должен быть инициализирован как следовать EndPointAddress myEdpintAddress = new EndPointAddress(new UrRL(string), myEndPointIdentity
)
Без параметров EndPointIdentity свойство Идентичность в объекте EndpointAddress является нулевым, и формирует «... цель основное имя недействительны ..." ошибка на стороне сервера.
B. Наши domai n поддерживает аутентификацию Kerberos и Ntlm. После того, как выше сделано, как правило, есть четыре сценария конфигурации на стороне клиента для net.tcp связывания, если безопасность кроме «None», а служба WCF работает как учетная запись домена:
Нет <identity>
элементов в клиентской конечной точке, указанной - WCF вызов неудачен
<identity>
элемент при условии, но с пустым значением для Dns, userPrioncipalName или ServicePrincipalName элементов - WCF назвать успешным, но использует проверку подлинности NTLM
<identity>
элемент со значением a для вызова dsn или SPN - WCF; служба использует Ntlm для аутентификации.
<identity>
элемент, снабженный правильным значением для upn-WCF callfull; служба использует Kerberos для аутентификации. Неправильное или отсутствующее значение для аутентификации upn Ntlm аутентификация
Спасибо.
Если вы хотите включить фрагменты кода или XML (например, configs), вам нужно выделить эти строки в своем сообщении, а затем использовать кнопку «code» (101 010) на панели инструментов редактора (или нажать Ctrl-K на ваша клавиатура), чтобы они были хорошо отформатированы и выделены синтаксис. В противном случае ваш пост действительно трудно читать, а XML даже не появится! –