WCF Web サービスを呼び出す WPF Windows クライアントがあります。ユーザーは、アプリケーションを開始する前に既に Windows ドメインにログインしており、WCF サービスは Windows 認証を使用しています。
WCF サービスを呼び出すときに、WPF クライアントが既にログインしているユーザーの WindowsPrincipal を使用するようにします。これを行うために明示的なユーザー名とパスワードを使用して新しい NetworkCredential インスタンスを作成したくありません。単純に、ユーザーに (Windows とアプリで) 2 回ログインするように要求するのは、かなりユーザーフレンドリーではないからです。
私が見たサンプルのほとんどは、この方法を使用して資格情報を設定していますが、これは私が望んでいるものではありません
serviceClientProxy.ClientCredentials.Windows.ClientCredential
= new NetworkCredential("username", "password", "domain");
代わりに、私はこのようなことをしたいと思います
serviceClientProxy.ClientCredentials.Windows.AllowedImpersonationLevel
= TokenImpersonationLevel.Identification;
serviceClientProxy.ClientCredentials.Windows.ClientCredential
= { /* network credential for already logged in user */ }
つまり、既に存在する (そして機能している) の NetworkCredential が必要です。
new WindowsPrincipal(WindowsIdentity.GetCurrent())
誰もこれを行う方法を知っていますか? app.config で設定security mode = ""
と転送を試みましたが、これまでのところ役に立ちません。clientCredentialType = ""