Система единого входа asp.net не работает

После выпуска кода система единого входа между двумя нашими сайтами перестала работать. Оба сайта работают на разных поддоменах одного домена. Субдомен 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 браузер перенаправляется обратно на страницу входа, и в журнале событий регистрируется следующее исключение:

Не удалось выполнить аутентификацию с помощью форм для запрос. Причина: предоставленный билет был недопустимым.

Есть идеи?

6
задан illvm 16 June 2011 в 15:02
поделиться