WIF-ID1014: Podpis jest nieprawidłowy. Dane mogły zostać naruszone
Używam WIF do uwierzytelniania naszej nowej strony internetowej, STS opiera się na implementacji początkowej.
Aby to działało poprawnie w środowisku z równoważeniem obciążenia, użyłem poniższego w global.asax, aby zastąpić domyślne zachowanie certyfikatu.
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);
}
To wszystko działa po prostu znajdź i ludzie z powodzeniem korzystają z systemu, jednak co jakiś czas dostajemy podmuch:
ID1014: Podpis jest nieprawidłowy. Dane mogły zostać naruszone.
w dziennikach zdarzeń, więc włączyłem śledzenie WIF i zobaczyłem następujące informacje w dzienniku.
ID1074: Wystąpił wyjątek CryptographicException podczas próby zaszyfrowania pliku cookie przy użyciu interfejsu API ProtectedData (szczegółowe informacje zawiera wyjątek wewnętrzny). Jeśli korzystasz z IIS 7.5, może to być spowodowane ustawieniem loadUserProfile w puli aplikacji na false.
Mam przeczucie, że to prowadzi mnie w ciemną uliczkę, jak myślałem, ponieważ zmieniłem implementację, aby używać RSA, nie powinno to mieć na mnie wpływu.
Masz jakieś pomysły, aby mi pomóc?