Я размещаю свое веб-приложение на Windows Server 2008 с IIS 7.5, у меня есть 2 веб-приложения: 1. Первое - это базовая служба sso (Single Sign-on) со страницей входа.2. другое веб-приложение размещено на том же веб-сервере, который использует первое приложение для sso.
Я использую WIF RTM для реализации sso,
обычно работает нормально безлюбая проблема, пользователь может войти в систему, бросить sso и перенаправить обратно на стартовую страницу.но когда я вхожу, сначала выбрасываю sso, затем перезагружаю IIS, если я возвращаюсь ко второму приложению и обновляю страницу, я получаю следующую ошибку:
Ошибка сервера в «/» приложении.Ключ недействителен для использования в указанном состоянии.Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.Security.Cryptography.CryptographicException: ключ недопустим для использования в указанном состоянии.
Ошибка источника: во время выполнения текущего веб-запроса было сгенерировано необработанное исключение.Информация о происхождении и местонахождении исключения может быть идентифицирована с помощью приведенной ниже трассировки стека исключений.
Трассировка стека:
[CryptographicException: ключ недопустим для использования в указанном состоянии.]
System.Security.Cryptography.ProtectedData.Unprotect (Byte [] encryptedData, Byte [] необязательная энтропия, область DataProtectionScope) + 425
Microsoft.IdentityModel.Web.ProtectedDataCookieTransform.Decode (закодировано байт [])1018 *
[InvalidOperationException: ID1073: возникла CryptographicException при попытке расшифровать файл cookie с помощью API ProtectedData (подробности см. Во внутреннем исключении).Если вы используете IIS 7.5, это может быть связано с тем, что для параметра loadUserProfile пула приложений установлено значение false.] Microsoft.IdentityModel.Web.ProtectedDataCookieTransform.Decode (закодировано в байтах []) + 151
Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ApplyTransforms (cookie в байтах [], логический исходящий файл) + 109 * 1021Ml. T.SessionSecurityTokenHandler.ReadToken (средство чтения XmlReader, токен SecurityTokenResolver) + 634
Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken (байтовый []] sessionCookie) + 239
Microsoft.IdentityModel.Web..SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +68 System.Web.HttpApplication.ExecuteStep (шаг IExecutionStep,Логическое и завершено синхронно) + 75
________________________________________ Информация о версии: Microsoft .NET Framework Версия: 2.0.50727.4927;ASP.NET версия: 2.0.50727.4927
сеанс пользователя хранится с использованием режима сеанса SQLServer, я использую для этого специальную базу данных.
Я много пробовал, и яне могу повторно решить эту проблему на моем локальном компьютере (Windows7).У кого-нибудь был подобный опыт?подскажите как решить эту проблему?