/ / Błąd WCF InvalidSecurity z powodu różnic czasowych - wcf, time, difference

Błąd WCF InvalidSecurity z powodu różnic czasowych - wcf, time, difference

Napotkałem błąd, który wystąpił z powoduinny czas między klientem a serwerem. Komunikacja jest zabezpieczona, a zatem błąd występuje w wywołaniu System.IdentityModel.Tokens.SecurityToken DoNegotiation (System.TimeSpan) (od strony docelowej).

Mogę odtworzyć ten błąd, po prostu zmieniając czas komputera klienta.

Czy istnieje możliwość dokładnego wykrycia tego przypadku?

Czy powinienem sam sprawdzić czas?

Czy powinienem przygotować komunikat o błędzie wskazujący różnice czasu jako możliwą przyczynę?

Dzięki, Lothar

Odpowiedzi:

0 dla odpowiedzi № 1

Zabezpieczony kanał jest szyfrowany za pomocą PKI plusznacznik czasu, a domyślne pochylenie to 5 minut. Oznacza to, że różnica między klientem a serwerem nie powinna przekraczać 5 minut. Aby uzyskać więcej informacji o tym, jak to działa, wpisz "wcf clock skew".

Windows od czasu pojawienia się Win2k z wbudowaną funkcją synchronizacji zegara z serwerem NTP, więc upewnij się, że taka funkcja jest włączona zarówno na serwerze, jak i na kliencie.

Zasadniczo aplikacje biznesowe nie powinny sprawdzaćdokładność zegara, ponieważ dokładność jest problemem systemowym, na który może polegać wiele funkcji sieciowych. Jeśli środowisko systemowe nie jest zdrowe, wiele innych aplikacji na tym samym komputerze również ulegnie awarii. Problem z systemem powinien zostać rozwiązany w sposób systemowy, w tym przypadku upewnij się, że zegar jest dokładny dzięki wbudowanej funkcji synchronizacji czasu systemu Windows.