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

Python:获取用户查看页面的Windows用户名?,python,windows-authentication,django-authentication,Python,Windows Authentication,Django Authentication,在Python/Django中,是否有方法从本地未运行的应用程序获取当前登录的Windows用户的用户名 更新:抱歉,澄清一下,我指的是查看网页的用户的Windows用户名,而不是运行服务器的用户 我两个都试过了: current_user = os.environ.get("USERNAME") current_user_getpass = getpass.getuser() 但我认为他们正在返回运行服务器的用户的名称 谢谢 进一步更新:我不太关心安全性。如果用户伪造用户名,这真的无关紧

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

更新:抱歉,澄清一下,我指的是查看网页的用户的Windows用户名,而不是运行服务器的用户

我两个都试过了:

 current_user = os.environ.get("USERNAME")
 current_user_getpass = getpass.getuser()
但我认为他们正在返回运行服务器的用户的名称

谢谢


进一步更新:我不太关心安全性。如果用户伪造用户名,这真的无关紧要。重要的是方便。我只需要一种方法来获取用户名,而不需要用户摆弄密码或安装客户端软件。有什么想法吗?

三种方法都不管用

  • 使用。从技术上讲,它是跨平台的

    …除了能够返回真实用户名而不是静态字符串的Windows零标识服务器之外

    编辑:显然你能做到这一点。(太棒了。)

  • 需要HTTP或身份验证。你得到的不仅仅是用户名检查

    …除了NTLM不安全之外,只有Internet Exploder和Firefox支持它,而且默认情况下,它们只在LAN(intranet)内部使用它<代码>协商能够使用更安全的Kerberos,但它(显然)在服务器和客户端上都需要Kerberos。如果Windows PC位于域中,则很好。如果不是

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

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


  • 运行服务器的用户与HTML请求中的
    授权
    头无关。你想要哪个用户名?对不起,我很困惑。我想要查看网页的用户的登录名,而不是运行服务器的用户的登录名。请更新您的问题以澄清。不要评论你的问题。请更新。回答得很好,谢谢。我不太关心安全性(这是一个低安全性的应用程序):我关心的是用户的便利性。当您说默认情况下NTLM在LAN内运行时,我需要要求用户如何使用它?(背景:我正在编写一个web应用程序,它将作为intranet的一部分运行,但如果可能的话,我想在云中托管它。)再次感谢。@AP257:对于IE,请将该应用程序添加到“intranet”或“Trusted”区域;对于Firefox,配置
    network.automatic ntlm auth.trusted URI
    (如果选择Kerberos,
    network.congregate auth.trusted URI
    )。在Active Directory域上,可以使用组策略完成此操作。