Может ли WCF выполнить проверку подлинности Windows с помощью имени пользователя и пароля?
Я создаю службу wcf, которая предназначена для работы в среде интрасети с использованием аутентификации Windows. Я весело работал вместе с какими-то настройками по умолчанию на локальном компьютере.
Теперь проблема в том, что мне нужно проверить его на демонстрационном компьютере вне сайта. Мне просто нужно, чтобы он работал с паролем имени пользователя, используемым для учетных записей пользователей компьютера службы wcf.
Это мой код клиента:
using (ImportServiceClient client = new ImportServiceClient("ImportServiceSoap12", REMOTE_ADDRESS))
{
client.ClientCredentials.Windows.AllowNtlm = true;
client.ClientCredentials.Windows.ClientCredential =
new NetworkCredential(userName, password, computerName);
result = client.Sync(items.ToArray());
}
Можно ли настроить службу wcf таким образом, чтобы она преобразовывала учетные данные в учетную запись Windows на своем компьютере?
Я читал противоречивые сообщения здесь и там, но я уверен, что IIS не должен быть частью аутентификации. Я не уверен, применяется ли аутентификационный узел ASP.Net или если это все настройки привязки.
В идеале я хотел бы, чтобы это была аутентификация типа NTLM, чтобы мне не нужно было устанавливать https.
1 ответ
Можно ли настроить службу wcf таким образом, чтобы она преобразовывала учетные данные в учетную запись Windows на своем компьютере?
Нет. Встроенная проверка подлинности Windows требует, чтобы и сервер, и клиент были частью одного домена (или доменов с доверительными отношениями в любом случае). Вы не можете использовать IWA для локальных учетных записей компьютеров на сервере.
Вам нужно будет использовать другую (потенциально настраиваемую) форму аутентификации, а затем выдать себя за пользователя, которого вы хотите запустить, как в коде сервера.