Python: Получить имя пользователя Windows для страницы просмотра? - PullRequest
5 голосов
/ 02 марта 2011

Есть ли в Python / Django способ получить имя пользователя текущего пользователя Windows, вошедшего в систему, из приложения, которое не работает локально?

ОБНОВЛЕНИЕ: извините, чтобы уточнить, под этим я имею в виду имя пользователя Windows пользователя, просматривающего веб-страницу , а не пользователя, запускающего сервер.

Я пробовал оба:

 current_user = os.environ.get("USERNAME")
 current_user_getpass = getpass.getuser()

Но я думаю, что они возвращают имя пользователя, работающего на сервере.

Спасибо!

ДАЛЬНЕЙШЕЕ ОБНОВЛЕНИЕ: меня не очень заботит безопасность. Это действительно не имеет значения, если пользователи подделывают имя пользователя. Что имеет значение, так это удобство. Мне просто нужен способ получить имя пользователя, чтобы пользователям не приходилось возиться с паролями или устанавливать программное обеспечение на стороне клиента. Есть идеи?

1 Ответ

2 голосов
/ 02 марта 2011

Три способа, ни один из которых не работает.

  1. Используйте протокол Ident (AUTH) .Это технически кроссплатформенный.

    ... за исключением того, что есть ровно ноль Ident-серверы для Windows, которые могут возвращать реальное имя пользователя вместостатическая строка.

    Редактировать: Очевидно Retina Scan Identd может сделать это.(Великолепно.)

  2. Требуется HTTP NTLM или Negotiate аутентификация.Вы получаете больше , чем простая проверка имени пользователя,

    ... за исключением того, что NTLM небезопасен, его поддерживают только Internet Exploder и Firefox, и они по умолчанию используют его только в локальной сети (интрасети),Negotiate может использовать более безопасный Kerberos, но он (очевидно) требует Kerberos как на сервере, так и на клиентах.Если ПК с Windows находятся в домене, хорошо.Если нет ...

  3. Если вы управляете всеми клиентскими машинами , вы можете использовать простую аутентификацию SSL-сертификата клиента.Работает во всех современных браузерах.

    ... но каждому пользователю нужен собственный сертификат.Создание CA для внутреннего использования и выдача сертификатов просты;их установка и работа на клиентских машинах - не так.

...