1

私たちのプロジェクトでは、すべてのWCFサービスはwsHttpBinding(TransportWithMessageCredential、UserName)オプションによって保護されています。

正常に動作しますが、もう1つのパラメーター(ClientId)を使用してセキュリティを実装する必要があります。

WCFサービスが電話を受けると、その電話のDB(ユーザー名とパスワードを確認する場所)がわからないため、最初は会社の「メイン」データベース(すべてのクライアントが保存されている場所)に移動する必要があります。 )そしてClientIdによって接続文字列を取得します。

これをどのように実装できますか?

4

2 に答える 2

1

私は過去に、特別にフォーマットされたユーザー名文字列を使用して追加情報を送信できるようにすることで、これを実装しました。これらの文字列フィールドでユーザー名とパスワードを送信する方法に関する規則はありません。そのため、コンテンツは実際にはシリアル化されたオブジェクト、圧縮された文字列、または必要と思われるものであれば何でもかまいません。

エレガントに情報を送る方法は他にありませんでした。

AuthorizationPolicy実装でその情報を解析するだけです。

于 2013-01-30T12:55:26.647 に答える
1

MessageInspectorsで同様の問題を解決しました。基本的にIClientMessageInspector、クライアントIDをメッセージヘッダーに追加する、およびIDispatchMessageInspectorクライアントIDをそのヘッダーから読み取り、適切な場所に格納するを作成します(IPrincipalset asのカスタム実装のようにThread.CurrentPrincipal)。

于 2013-01-30T13:00:51.730 に答える