Код не работает на сервере IIS, но работает на localhost - Exception Type: KeyError at / Exception Value: '_auth_user_backend'
Я борюсь со следующей ошибкой :
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'xx.middleware.LDAPAuthMiddleware',
'xx.middleware.UserLogMiddleware',
'django.contrib.auth.middleware.RemoteUserMiddleware']
Traceback (most recent call last):
File "C:\xx\venv\Lib\site-packages\django\core\handlers\exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "C:\xx\venv\Lib\site-packages\django\utils\deprecation.py", line 133, in __call__
response = self.process_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\xx\venv\Lib\site-packages\django\contrib\auth\middleware.py", line 71, in process_request
if request.user.get_username() == self.clean_username(username, request):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\xx\venv\Lib\site-packages\django\contrib\auth\middleware.py", line 92, in clean_username
backend_str = request.session[auth.BACKEND_SESSION_KEY]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\xx\venv\Lib\site-packages\django\contrib\sessions\backends\base.py", line 53, in __getitem__
return self._session[key]
^^^^^^^^^^^^^^^^^^
Exception Type: KeyError at /
Exception Value: '_auth_user_backend'
Я не очень понимаю, когда возникает эта ошибка и почему. При работе на localhost ошибка не возникает, но при попытке использовать сайт на IIS возникает эта ошибка, поэтому отладить ее довольно сложно.
Ниже представлено мое промежуточное ПО:
def get_client_user(self,request):
username = request.META.get('REMOTE_USER')
if username is None:
username = request.META.get('HTTP_REMOTE_USER')
if username is None:
username = 'Anonymous'
return username
def __call__(self, request):
auth = LDAPBackend()
My_User_Test = self.get_client_user(request)
My_User_ip = self.get_client_ip(request)
username = My_User_Test.replace("MC-DOMAIN\\","")
if not request.user.is_authenticated:
print(username)
user = auth.populate_user(username)
request.user = user
else:
user = request.user
context = {'metadata_user': username,
'request_user': My_User_Test,
'request_ip': My_User_ip,}
if user is None:
print("User not authenticated: ", username)
return render(request, 'Not_Authorized.html',context)
else:
print("User Authenticated: ", user)
if user is not None and 'memberOf' in user.ldap_user.attrs:
groups = user.ldap_user.attrs['memberOf']
is_member_of_GRP_ACCESS = any('CN=GRP_ACCESS,' in group for group in groups)
if not is_member_of_GRP_ACCESS :
return render(request, 'Not_Authorized.html',context)
response = self.get_response(request)
return response
Ниже приведена моя конфигурация IIS:
У кого-нибудь есть объяснение, способ отладки или способ решения этой ошибки?