Запрос HTTP несанкционирован со схемой 'Basic' аутентификации клиента. Заголовок аутентификации, полученный от сервера, был 'Основной областью = “ПК”'

К тому времени, когда вы пытаетесь обновить дату и время, имя пользователя уже изменилось, поэтому ваш оператор UPDATE не находит ни одной строки со старым username.

В операторе, который не работает, передайте new_username вместо username в предложение WHERE оператора UPDATE.


Кроме того, вы можете улучшить его и сократить 3 запроса до 1:

cursor.execute(
    """
    UPDATE logins
      SET (username = ?, changeuser_date = ?, changeuser_time = ?)
      WHERE username = ?
    """,
    (new_username, date, time, username))

То же самое касается обновления пароля:

cursor.execute(
    """
    UPDATE logins
      SET (password = ?, changepass_date = ?, changepass_time = ?)
      WHERE username = ?
    """,
    (new_pass, date, time, username))
17
задан Cœur 6 August 2017 в 11:21
поделиться

4 ответа

Я применил все вещи, которые являются вышеупомянутыми, но моя проблема не решена.

В моем случае это происходит из-за прокси-сервера. Тогда я удалил все полномочие, и управляйте моим веб-сервисом. Тогда это хорошо работает.

Хоуп это будет Вы!!!!!!

0
ответ дан 30 November 2019 в 12:58
поделиться

Похоже, вы задали имя пользователя дважды вместо имени пользователя и пароля.

Если у вас есть базовая проверка подлинности и вы не отправляете имя пользователя и пароль с запросом, вы получаете вызов ответ.

1
ответ дан 30 November 2019 в 12:58
поделиться

Попробуйте отправить имя пользователя и пароль не в http с базовой аутентификацией (это может смутить IIS), а только в заголовках мыльных сообщений со следующей схемой:

<binding name="...">
        <security mode="TransportWithMessageCredential" >
           <message clientCredentialType="UserName" />
        </security>
</binding>

Как: использовать транспортную безопасность и Учетные данные для сообщения

Возможно, вам также потребуется дополнительно указать

3
ответ дан 30 November 2019 в 12:58
поделиться

Я предполагаю, что вы размещаете ваш сервис в IIS. Тогда проблема заключается в том, что IIS перехватывает запрос HTTPS и выполняет аутентификацию уровня IIS до того, как Framework WCF и ваш собственный валидатор имеет возможность ударить.

В вашем примере IIS на самом деле будет искать локальный пользователь 111 «С паролем '111' на сервере работает IIS. Попробуйте создать этот пользователь на сервере, и вы, вероятно, получите другой результат.

Одним из решений является проведение вашего WCF ServiceHost где-то еще, например, в службе Windows. Другое решение состоит в том, чтобы изменить свою схему безопасности для транспортировки свидетельствуют. Наконец, вы можете проверить этот модуль HTTP OSS: Таможенная базовая аутентификация для IIS - кажется, что делает трюк, который нам нужен.

10
ответ дан 30 November 2019 в 12:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: