我已经在Windows/IIS 10.0上使用wfastcgi在Windows域帐户下运行Python 3.6的情况下成功设置了示例Flask应用程序。

现在,我试图将IIS Windows身份验证用户信息传递给我的Flask应用程序。我仅在IIS中启用了Windows身份验证,并且我的浏览器成功进行了身份验证。

我如何找出哪个用户正在WSGI中访问该网站?我检查了环境变量和HTTP header ,但没有碰到运气。

PHP似乎有一个fastcgi.impersonate -Option,但是似乎没有Python的吊坠。

最佳答案

您提到您已经检查了环境变量和HTTP header 。如果您使用os.environ.get['REMOTE-USER']检查了环境变量,那么您应该收到一个空字符串,因为您的Python实例在服务器上本地运行,并且不是远程的。并且除非您使用ISAPI重写之类的方法,否则IIS也不会将REMOTE-USER写入 header 。

最简单的解决方案是检查IIS明确传递给Flask的环境变量:

from Flask import request

username = request.environ('REMOTE_USER')

关于python - 使用FastCGI将Windows身份验证上下文从IIS传递到Python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49592971/

10-16 07:21