Ошибки в элементах управления Windows Forms в представлении разработчика

Я думаю, что лучший способ справиться с этим - использовать существующие коды ответа HTTP-протокола, в частности 401 Unauthorized.

Вот как я его решил:

  1. Сторона сервера: если сеанс истекает, а запрос - ajax. отправьте заголовок кода 401 ответа
  2. Сторона клиента: привязка к событиям ajax
    $('body').bind('ajaxSuccess',function(event,request,settings){
    if (401 == request.status){
        window.location = '/users/login';
    }
    }).bind('ajaxError',function(event,request,settings){
    if (401 == request.status){
        window.location = '/users/login';
    }
    });
    

IMO это более общий и вы не пишете новые пользовательские спецификации / заголовок. Вам также не нужно изменять какие-либо из ваших существующих вызовов ajax.

Изменить: в комментарии @ Rob ниже, 401 (код состояния HTTP для ошибок аутентификации) должен быть индикатором. См. 403 Запрещенные vs 401 Неавторизованные HTTP-ответы для более подробной информации. При этом некоторые веб-фреймворки используют 403 для ошибок аутентификации и авторизации, поэтому соответствующим образом адаптируйте их. Спасибо, Роб.

32
задан Matt Hamilton 31 December 2008 в 02:27
поделиться

2 ответа

Это - ошибка в VS. Это происходит в VS2005 также.

не тратят впустую Ваше время: закройте VS, откройте его снова, и все должно хорошо работать.

34
ответ дан 27 November 2019 в 21:05
поделиться

Обратите внимание, что существует проблема Microsoft Connect об этом: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx? FeedbackID=366006

5
ответ дан 27 November 2019 в 21:05
поделиться