当Web服务器(此处为IIS托管的django)负责身份验证时,它通常会设置REMOTE_USER环境变量以在底层应用程序中使用.在Django中,REMOTE_USER在request.META属性中可用.可以使用django.contrib.auth中的RemoteUserMiddleware和RemoteUserBackend类将Django配置为使用REMOTE_USER值.
配置
您必须在django.contrib.auth.middleware.AuthenticationMiddleware之后将django.contrib.auth.middleware.RemoteUserMiddleware添加到MIDDLEWARE_CLASSES设置:
MIDDLEWARE_CLASSES = (
...
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.RemoteUserMiddleware',
...
)
接下来,您必须在AUTHENTICATION_BACKENDS设置中将ModelBackend替换为RemoteUserBackend:
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.RemoteUserBackend',
)
通过此设置,RemoteUserMiddleware将检测request.META [‘REMOTE_USER’]中的用户名,并将使用RemoteUserBackend对该用户进行身份验证和自动登录.
要在请求中获取REMOTE_USER,请执行以下IIS设置:
1.在“控制面板”中,单击“程序和功能”,然后单击“打开或关闭Windows功能”.
2.展开Internet信息服务,展开万维网服务,展开安全性,然后选择Windows身份验证.
IIS管理器
>打开IIS管理器并导航到要管理的级别.
>在“功能视图”中,双击“身份验证”.
>在“身份验证”页面上,选择Windows身份验证.
>在“操作”窗格中,单击“启用”以使用Windows身份验证.
(More info)