После выпуска кода система единого входа между двумя нашими сайтами перестала работать. Оба сайта работают на разных поддоменах одного домена. Субдомен x использовался как сервер входа в систему для всех других приложений. Я не могу понять, почему это так. В web.config для обоих сайтов ключи машины и дешифрования совпадают. Для проверки задано значение SHA1, а для дешифрования - AES. Конфигурация аутентификации гласит:
X:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" protection="All" name="Domain.ASPXAUTH" path="/" domain="domain.com" />
</authentication>
Y:
<authentication mode="Forms">
<forms loginUrl="https://x.domain.com/Account/LogOn" timeout="2880" protection="All" name="Domain.ASPXAUTH" path="/" domain="domain.com" defaultUrl="http://x.domain.com/" />
</authentication>
Система единого входа работала нормально до сегодняшнего утра. Я не совсем уверен, что было изменено с выпуском кода, и у меня проблемы с этим. Два приложения в настоящее время работают в разных пулах приложений (одно - это .net 4.0, а y - .net 2.0), и когда я переключил их на использование одного и того же пула приложений, SSO сработало. Однако это не вариант, поскольку одна из библиотек, используемых на другом сайте, работает только на .NET 2.0. Я также безуспешно пытался принудительно использовать машину, ключи дешифрования и алгоритмы проверки и дешифрования в диспетчере IIS7 как на верхнем уровне, так и на уровне веб-сайта.
При попытке перейти на y.domain.com после перехода на x.domain.com браузер перенаправляется обратно на страницу входа, и в журнале событий регистрируется следующее исключение:
Не удалось выполнить аутентификацию с помощью форм для запрос. Причина: предоставленный билет был недопустимым.
Есть идеи?