Для проверки подлинности форм нашего приложения ASP.NET 4.0 установлено значение cookieless = "AutoDetect." Я заметил, что если пользователь закладывает нашу страницу входа в систему, ссылка на закладку устанавливается на https://hostname.com/Login.aspx?AspxAutoDetectCookieSupport=1. Если пользователь переходит на это непосредственно из нового сеанса браузера и выполняет действительный вход в систему, cookie не устанавливается. Если перейти непосредственно к этой странице, но удалить AspxAutoDetectCookieSupport из строки запроса, файл cookie будет создан правильно.
Если пользователь переходит непосредственно к Default.aspx или корневому каталогу, вход в систему работает правильно, даже если AspxAutoDetectCookieSupport = 1 прикреплен к строке запроса.
Когда пользователь нажимает кнопку входа в систему, мы выполняем обратную передачу на страницу входа и вручную проверяем учетные данные пользователя по нашей базе данных. В случае успеха мы делаем:
FormsAuthentication.RedirectFromLoginPage(userName, false);
Я потратил много часов на отладку этого, включая просмотр кода аутентификации форм ASP.NET в справочном источнике, и не смог определить причину этого. Единственное решение, которое у нас есть на данный момент, - это попросить пользователей удалить страницу входа из URL-адреса их закладок и добавить кнопку закладки на нашей странице входа, чтобы пользователи могли нажимать.
Есть ли другое решение для устранения этой проблемы проверки подлинности с помощью форм? Это проверка подлинности в формах?