Python / Django中是否有办法从未在本地运行的应用程序中获取当前登录Windows用户的用户名?
更新:对不起,澄清一下,我的意思是查看网页的用户的 Windows用户名,而不是运行服务器的用户。
我试过了两个:
current_user = os.environ.get("USERNAME")
current_user_getpass = getpass.getuser()
但我认为他们正在返回运行服务器的用户的名字。
谢谢!
进一步更新:我不太关心安全问题。用户欺骗用户名真的没关系。重要的是方便。我只需要一种获取用户名的方法,而无需用户使用密码或安装客户端软件。有什么想法吗?
答案 0 :(得分:2)
三种方式,都不起作用。
使用Ident (AUTH) protocol。它是技术上跨平台。
...除了Windows的零 Ident服务器能够返回真实用户名而不是静态字符串。
编辑:显然Retina Scan Identd可以做到这一点。 (真棒。)
需要HTTP NTLM
或Negotiate
身份验证。你得到更多而不仅仅是用户名检查,
...除了NTLM是不安全的,只有Internet Exploder和Firefox支持它,默认情况下它们只在局域网(Intranet)内使用它。 Negotiate
能够使用更安全的Kerberos,但它(显然)需要服务器和客户端上的Kerberos。如果Windows PC在域中,那很好。如果不是......
如果控制所有客户端计算机,则可以使用简单的SSL客户端证书身份验证。适用于所有现代浏览器。
...但每个用户都需要自己的证书。创建内部使用CA并颁发证书很简单;让他们安装并在客户端机器上工作 - 不是这样。