0

私は(広範囲に)WCFサービスを呼び出すASP.NETアプリケーションを開発しています。今、私はこれを頭に正しく巻き付けることができないので、明らかにある種の精神的な崩壊を経験しています。

メッセージセキュリティとUserNameのClientCredentialTypeでws2007HttpBindingを使用しています。WCFは、ASP.NETメンバーシッププロバイダーを使用して、ユーザーの資格情報を検証しています。

これはすべて正常に機能しますが、これまでの呼び出しにユーザーの詳細を含める必要があることは明らかです。

var service = new MyService.MyServiceClient();
service.ClientCredentials.UserName.UserName = "my_username";
service.ClientCredentials.UserNane.Password = "mypassword";

.... etc ...

service.Close();

これで、ユーザーがユーザー名とパスワードを入力しただけなので、ログインページから簡単にアクセスできます。後でユーザーの資格情報を使用して別のサービスを呼び出す必要があるときに使用するために、パスワードを保存することに不安があります。

明らかな何かが欠けていますか?トークンなどについて読んだことがありますが、そのようなものを実装する方法が完全にはわかりません。私は一日中検索と読書をしてきましたが、まだ確信が持てないので、あなたが与えることができるどんな助けも大いに感謝されます!

4

1 に答える 1

1

最も簡単な方法は、パスワードをカスタム インデンティに保存することです。理想的な世界では、たとえば Kerberos と委任を使用します。偽装と委任に関する詳細情報を探してください。

非常に良い記事:

http://msdn.microsoft.com/en-us/library/ms998358.aspx#paght000025_usingimpersonation

しかし、これらすべてはメンバーシップ プロバイダーでは機能しません。Active Directory による Windows 認証が必要です。

このトピックは簡単なものではありません...アイデアとして: 対話的にログオンしているユーザーの資格情報を使用して Web サービスで認証する必要があるか?

ちょっとHTH、アレックス

于 2009-07-25T13:11:02.710 に答える