現在、wcf サービスと、Windows 認証を使用して tcp 経由で接続するクライアント アプリケーションを備えたシステムを検討しています。
特定のアクションでは、ユーザー名をオブジェクト プロパティに保存し、それをサービスに送信して、クライアントから渡された資格情報と比較する必要があります。オブジェクトはさらに処理されます。
最近、これが常に期待どおりに機能するとは限らないことがクライアントによって発見されました。この問題を調べたところ、クライアント側とサーバー側で異なるユーザー名が使用されている場合があることがわかりました (小文字と大文字の使用方法が異なります)。
回避策をインストールしました(明らかにstring.EqualsでIgnoreCaseオプションを使用しています)が、実際の修正に興味があります。
クライアントでは WindowsIdentity.Current.Name を文字列として使用し、サービス側では ServiceSecurityContext.Current.WindowsIdentity.Name を文字列として使用します。
この比較を行う正しい方法は何ですか?