SOAPメッセージヘッダーに含まれているSAMLトークンを逆シリアル化するDispatchMessageInspectorがあります。
デシリアライズを行うために、次のコードのバリエーションを使用しています。
List<SecurityToken> tokens = new List<SecurityToken>();
tokens.Add(new X509SecurityToken(CertificateUtility.GetCertificate()));
SecurityTokenResolver outOfBandTokenResolver = SecurityTokenResolver.CreateDefaultSecurityTokenResolver(new ReadOnlyCollection<SecurityToken>(tokens), true);
SecurityToken token = WSSecurityTokenSerializer.DefaultInstance.ReadToken(xr, outOfBandTokenResolver);
私が見ている問題は、ReadToken呼び出しのパフォーマンスが、Windowsサービス(WCFサービスがホストされている)を実行しているアカウントによって異なることです。
サービスがWindowsドメインアカウントとして実行されている場合、ReadToken呼び出しの経過時間は実質的にゼロです。ローカルマシンアカウントとして実行している場合、呼び出しには200〜1000ミリ秒かかります。
誰かがここで何が起こっているのか、そしてなぜこのコードを実行しているアカウントがそのパフォーマンスに違いをもたらすのかを明らかにすることができますか?
ありがとう、
マーティン