WCF サービスに接続してデータを送信するアプリがあります。カスタムのユーザー検証を使用してユーザーを認証します。
現在、クライアントの時間がサーバーの時間 (デフォルトの 5 分) と大幅に異なる場合、このエラーにより接続が失敗します。
この特定のエラーをキャッチして、サーバー側で、エラーが発生したときに誰かに通知し、エラーが発生したユーザー/クライアントに通知できるようにしています。
より大きなクロック スキューを許可しても問題は解決しないため、これを実行したいと考えています。クライアントのマシン時間に大きな変動が生じる可能性があります。クライアント マシンを制御することはできませんが、時間を更新することはできます。
一般的な try/catch を検証メソッドに入れようとしましたが、他の例外 (認証が失敗した場合 - FaultException をスローした場合など) をキャプチャしますが、クロック スキューの問題をキャッチしていないようです。これはこれをキャッチする正しい場所ではないと思いますが、他にどこに行くべきか途方に暮れています。
ログインの一部としてクライアント時刻を渡すことを実装しますが (他の場所で提案されているように)、現時点ではこれを行うことができず、その間に誤った日付/時刻を持つクライアントを識別する方法が本当に必要です。
それが役立つ場合、サービスはbasicHttpBindingを使用しており、そのセキュリティ モードはTransportWithMessageCredentialです。