Может ли WCF выполнить проверку подлинности Windows с помощью имени пользователя и пароля? - PullRequest
1 голос
/ 02 мая 2011

Я создаю службу 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 Ответ

3 голосов
/ 02 мая 2011

Можно ли настроить службу wcf таким образом, чтобы она преобразовывала учетные данные в учетную запись Windows на своем компьютере?

Нет. Встроенная проверка подлинности Windows требует, чтобы и сервер, и клиент были частью одного домена (или доменов с доверительными отношениями в любом случае). Вы не можете использовать IWA для локальных учетных записей компьютеров на сервере.

Вам придется использовать какую-то другую (потенциально настраиваемую) форму аутентификации, а затем выдать себя за пользователя, которого вы хотите запустить, как в коде сервера.

...