1

この問題に直面して、私は最近本当に疲れています。WCFサービスを使用するXBAPアプリケーション(WPFブラウザーアプリケーション)を構築しています。このアプリには以下が必要です。

  • ユーザーは自分のユーザー名とパスワード(私のデータベースに保存されている)を使用してログインできます
  • ユーザーはX509証明書(*.pfxまたは*.cert ...)をインストールする必要はありません。
  • WCFサービスはbasicHttpBindingを使用する必要があります(他のSilverlightアプリケーションをサポートするため)

私は多くの方法を試しましたが、これらの要件を満たしていません。解決策はありますか?前もって感謝します。

4

1 に答える 1

2

basicHttpBindingは、その名前が示すように、提供するものにおいて非常に基本的です。セキュリティに関しては特に基本的です。

私の知る限り、あなたは自分がやろうとしていることを達成することはできません。BasicHttpBindingは、Windowsクレデンシャル(カスタムユーザーのインターネットでは適切ではありません)またはデジタル証明書を使用したトランスポートセキュリティ(httpsプロトコルを使用)、またはデジタル証明書を使用したメッセージセキュリティ(明示的に除外します-なぜ??)のみをサポートします。

このCodeProjectの記事8ステップを確認して、WCF BasicHttpBindingまたはGoogleで「basicHttpBindingセキュリティ」のWindows認証を有効にします。多くの記事がありますが、要件に対する実際の解決策はおそらくありません。basicHttpBindingではこれを行うことはできません。

更新:デフォルトでは、WCFでは、呼び出しごとに呼び出し元の資格情報を渡す必要がありますが、サービスメソッドのパラメーターとしてではなく、クライアント側で生成されたサービスプロキシでクライアントの資格情報を指定する必要があります。何かのようなもの:

 myService.ClientCredentials.UserName.UserName = "username";
 myService.ClientCredentials.UserName.Password = "p@ssw0rd";
于 2010-06-27T08:48:46.407 に答える