Я использую на своем веб-сайте проверку подлинности Windows asp.net. После аутентификации сайт работает нормально (разрешены даже запросы ajax).
Но через определенное время, когда я делаю вызовы ajax на сервер, сервер возвращает код состояния 403 (неавторизованный).
В чем причина и как это исправить?
вот случай:
1- сначала я вхожу в систему со своими учетными данными LDAP
2- Открывается страница, содержащая кнопку для получения данных с помощью ajax.
3-При нажатии кнопки данные извлекаются, НО после выхода из веб-сайта в режиме ожидания в течение некоторого времени без выполнения каких-либо запросов к серверу, вызовы AJAX возвращают статус 403 (Запрещено)
Обратите внимание, когда я перенаправляю на другие страницы, все в порядке. Мне не возвращен код состояния 403.
и вот запрос ajax:
$.ajax({
url: '/GetFilteredRecords/',
data://filter goes here,
type: 'GET',
success: function (result) {
//display result
},
error: function (result) {
alert("something went wrong");
}
});
Или; Пожалуйста, редактировать вопрос, чтобы ограничить его конкретной проблемой с достаточной детализацией, чтобы определить адекватный ответ, например, предоставив некоторый код или более подробную информацию об аутентификации.
@Stephan Я обновил вопрос для получения дополнительных разъяснений. Вы все еще думаете, что срок действия cookie истек?
Можете ли вы показать сценарий, выполняющий вызов ajax?
@Stefan Я добавил запрос ajax внизу вопроса. Как вы думаете?
Думаю, это каверзный вопрос ;-). Но, пожалуйста, проверьте следующее: 1) выполняется ли вызов ajax в том же домене? (это требование для установки скользящего файла cookie) 2) задействовано ли обширное кеширование? 3) В вашем случае вы можете попробовать следующий вариант вызова ajax: xhrFields: { withCredentials: true },





Это нормальное поведение при проверке подлинности Windows. Проверка подлинности Windows поддерживает несколько протоколов проверки подлинности - Kerberos, NTLM и, возможно, другие. Ваш браузер пробует один метод аутентификации, а если он терпит неудачу, он пробует другой, пока не добьется успеха. Тебе не стоит об этом беспокоиться. Как видите, второй запрос к тому же URL выполнен успешно. Вы можете посмотреть заголовки аутентификации каждого запроса, чтобы узнать, что именно он делает.
Спасибо, @Tashi Asher. Но почему тайм-аут аутентификации для запросов ajax, а не при перенаправлении или обновлении страницы? Есть ли параметр тайм-аута, который я должен изменить?
@ Fadi.AM Не знаю. Мы также видели это в вызовах AJAX, но не исследовали запросы полной страницы. Мы не слишком беспокоимся об этом.
Срок действия вашего токена аутентификации или cookie истек. Вам нужно его обновить.