Код не работает на сервере 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:

enter image description here

У кого-нибудь есть объяснение, способ отладки или способ решения этой ошибки?

Вернуться на верх