WIF-ID1014: подпись недействительна. Данные могли быть подделаны

Я использовал WIF для аутентификации нашего нового веб-сайта, STS основан на реализации starter-sts.

Чтобы это правильно работало в среде с балансировкой нагрузки, я использовал следующее в файле global.asax, чтобы переопределить поведение сертификата по умолчанию.

void onServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e)
        {
            List<CookieTransform> sessionTransforms = new List<CookieTransform>(new CookieTransform[] 
            { 
                new DeflateCookieTransform(), 
                new RsaEncryptionCookieTransform(e.ServiceConfiguration.ServiceCertificate),
                new RsaSignatureCookieTransform(e.ServiceConfiguration.ServiceCertificate)
            });

            SessionSecurityTokenHandler sessionHandler = new SessionSecurityTokenHandler(sessionTransforms.AsReadOnly());
            e.ServiceConfiguration.SecurityTokenHandlers.AddOrReplace(sessionHandler);
        }

Все это работает, просто найдите, и люди успешно используют систему, однако время от времени мы получаем взрыв:

ID1014: Подпись недействительна. Данные могли быть подделаны.

в журналах событий, поэтому я включил трассировку WIF и увидел следующее в журнале.

ID1074: Возникло CryptographicException при попытке зашифровать файл cookie с помощью API ProtectedData (подробности см. во внутреннем исключении). Если вы используете IIS 7.5, это может быть связано с тем, что для параметра loadUserProfile в пуле приложений задано значение false.

У меня такое ощущение, что это ведет меня в темный переулок, как я и думал, поскольку я изменил реализацию для использования RSA, это не должно повлиять на меня.

Любые идеи, которые помогут мне?

8
задан RubbleFord 28 May 2012 в 09:42
поделиться