Python:获取用户查看页面的Windows用户名?

时间:2011-03-02 11:35:43

标签: python windows-authentication django-authentication

Python / Django中是否有办法从未在本地运行的应用程序中获取当前登录Windows用户的用户名?

更新:对不起,澄清一下,我的意思是查看网页的用户的 Windows用户名,而不是运行服务器的用户。

我试过了两个:

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

但我认为他们正在返回运行服务器的用户的名字。

谢谢!

进一步更新:我不太关心安全问题。用户欺骗用户名真的没关系。重要的是方便。我只需要一种获取用户名的方法,而无需用户使用密码或安装客户端软件。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

三种方式,都不起作用。

  1. 使用Ident (AUTH) protocol。它是技术上跨平台。

    ...除了Windows的 Ident服务器能够返回真实用户名而不是静态字符串。

    编辑:显然Retina Scan Identd可以做到这一点。 (真棒。)

  2. 需要HTTP NTLMNegotiate身份验证。你得到更多而不仅仅是用户名检查,

    ...除了NTLM是不安全的,只有Internet Exploder和Firefox支持它,默认情况下它们只在局域网(Intranet)内使用它。 Negotiate能够使用更安全的Kerberos,但它(显然)需要服务器和客户端上的Kerberos。如果Windows PC在域中,那很好。如果不是......

  3. 如果控制所有客户端计算机,则可以使用简单的SSL客户端证书身份验证。适用于所有现代浏览器。

    ...但每个用户都需要自己的证书。创建内部使用CA并颁发证书很简单;让他们安装并在客户端机器上工作 - 不是这样。