code: def _load_user_dn(self):
          
          if self._using_simple_bind_mode():
              self._user_dn = self._construct_simple_user_dn()
          else:
              if self.settings.CACHE_TIMEOUT > 0:
                  cache_key = valid_cache_key(
                      "django_auth_ldap.user_dn.{}".format(self._username)
                  )
                  self._user_dn = cache.get_or_set(
                      cache_key, self._search_for_user_dn, self.settings.CACHE_TIMEOUT
                  )
              else:
                  self._user_dn = self._search_for_user_dn()
docs: Populates self._user_dn with the distinguished name of our user.
  
          This will either construct the DN from a template in
          AUTH_LDAP_USER_DN_TEMPLATE or connect to the server and search for it.
          If we have to search, we'll cache the DN.