FormsAuthentication работает в любом браузере, кроме IE - PullRequest
7 голосов
/ 27 сентября 2011

Это, конечно, странно ...

У меня есть сайт ASP.net 4.0, C #, на котором есть страница входа, использующая FormsAuthentication для обработки доступа пользователей.Также на сайте есть код, который загружает пользователя обратно на страницу входа в систему, когда время сеанса истекает или происходит что-то еще, что требует от него повторного входа в систему.Это все очень простые вещи, которые я делал около десятка раз раньше.

Я знаю, что весь этот процесс работает, потому что я смог войти на сайт, работающий через VS2010, в КАЖДОМ браузере, который я пробовал,Он также прекрасно работает, когда он находится на сервере разработки с использованием Chrome, Firefox, Safari (Mac) и двух браузеров для мобильных телефонов.Единственная проблема, с которой у меня возникла проблема - это Internet Explorer.

Теперь эту проблему немного сложно отладить, учитывая, что она работает в IE локально, но не на сервере.Тот факт, что он также работает в других браузерах на сервере, также как бы исключает проблему с конфигурацией сервера.

Я попытался выяснить, где это может пойти не так, добавив строку запроса в мойFormsAuthentication.RedirectToLogin ( "WhateverPage = WhateverSectionOfCode");линия, чтобы попытаться решить это.Проблема в том, что когда я запускаю сайт в IE, он никогда не добавляет эту строку запроса, из-за чего я полагаю, что он никогда не попадет ни в одну из этих строк "RedirectToLogin".

Я знаю, что он аутентифицируется, потому что кодэто обновляет метку времени последнего входа в базу данных, только если пользователь аутентифицирован.Похоже, что строка "RedirectFromLogin" выходит и находит нужную запись в web.config ... и, возможно, она перенаправляет меня, но даже если это так, она всегда возвращает меня обратно на экран входа в систему.

Я прошел через все действительно базовые ошибки ID-10T (хе), которые могут быть причиной этого: повышенные параметры безопасности, отключенные файлы cookie и т. Д., Но я получаю одинаковые результаты на нескольких компьютерах.

Я действительно немного озадачен тем, что искать дальше.У меня уже было два других взгляда на код, но они не могли придумать причину, по которой это происходило.Если у кого-то есть какие-либо предложения относительно того, что могло бы произойти, я хотел бы услышать их.

Спасибо!

Ответы [ 3 ]

4 голосов
/ 18 апреля 2012

Я знаю, что этот билет немного устарел, но, видимо, IE не может установить аутентификацию форм в домене с подчеркиванием в имени.Поэтому, если проблема возникла на сервере разработки, скажем, Dev_XP, то IE не сможет установить файл cookie аутентификации.

Вот что случилось со мной.Вот ссылка: http://orwin.ca/2012/02/09/formsauthentication-setauthcookie-not-working-in-ie-but-works-in-other-browsers/

Это художественная статья в КБ, излагающая проблему http://support.microsoft.com/kb/316112

4 голосов
/ 27 сентября 2011

я думаю, что это что-то о печенье ..

Вы установили атрибут домена в файле web.config?

<authentication mode="Forms">
  <forms loginUrl="~/login.aspx" name="cookiename" domain="domain.com" cookieless="UseCookies" slidingExpiration="true" timeout="60"/>
</authentication>

Form Элемент для аутентификации (схема настроек ASP.NET)

0 голосов
/ 28 сентября 2018

У меня такая же проблема, но со всеми другими браузерами, кроме Chrome.Странно то, что когда все эти браузеры пробуются локально (на том же компьютере, где работает служба), все работает хорошо.Когда я подключаюсь удаленно - работает только Chrome.Firefox и IE перенаправляют меня обратно на страницу входа в систему каждый раз, хотя пользователь проходит проверку подлинности - так же, как и у вас, обновляется отметка времени входа в базу данныхНо у меня также есть сервер разработчика, расположенный в другой сети, подключение к этой сети занимает меньше времени, и здесь все три браузера работают нормально.Поэтому я думаю, что проблема в настройках IIS, которые могут отличаться на реальном сервере против разработчика, или это может быть проблема в Redirect и потоке, который создает сеанс.Я нашел интересную тему об этом .Это о ASP WebForms, хотя.См. мой вопрос о stakoverflow .И, пожалуйста, дайте мне знать, если вы решите эту проблему!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...