2011-06-29 9 views
2

私はどのように設定を使用してWCFクライアントにユーザー名/パスワードを設定しますか?

myClient.ClientCredentials.UserName.UserName = "User"; 
myClient.ClientCredentials.UserName.Password = "Password"; 

を使用してコードを介してこれを行うことができます知っているではなく、コンフィギュレーションを介してクライアントのために同じものを提供することが可能ですか?

+0

いいえ、これはコードで** **のみ設定できるいくつかの設定の1つです。 –

答えて

5

残念ながら、私はそれが可能ではないと思います。ただし、.configファイルの設定を手動で読み取ってプログラムで設定することもできます。

clientCredentials.UserName.UserName = ConfigurationManager.AppSettings["username"]; 
clientCredentials.UserName.Password = ConfigurationManager.AppSettings["password"]; 
2

既定では使用できません。もっと重要なことに、それはあまり安全ではありません。

設定ファイルにアクセスできる人は、そのサービスの資格情報を持っています。クライアントアプリケーションの場合、アプリケーションをインストールする場所への読み取りアクセス権を持つため、プログラムを実行できるのは誰でも可能です。

+0

データベース接続の資格情報をコンフィグレーションに保存できる場合は、そのサービスを使用しないでください。私はそれが最も安全な方法ではないかもしれないことに同意しますが、それはすでに実行されている他のパターンと同様です。 – Kon

+0

これは良い考えではないからです:)データベースはSQL認証を使用する必要がありますが、それでもデータベース接続の統合認証を使用するよりも安全性が低くなります。 –

+0

私は最近、p/CredReadとCredWrite Win32 APIコールを呼び出すことで、この問題を回避しました。その後、サービスアカウントを使用してサーバーにログインし、Windows Credential Managerに必要な資格情報を追加しました。これは、Windowsが一般的な資格情報を暗号化して格納できる場所です。 サービスは、実行時に資格情報を解決し、リモートサービスに対して認証に使用します。 この方法では、資格情報をプレーンテキストでディスクに書き込むことを防ぎ、アプリケーションがユーザー名/パスワード認証を使用できるようにしました。 –

関連する問題