0

basicHttpBinding(SOAP) を使用する WCF サービスを作成しています。Web サービスへの各リクエストで、アカウント名とキー (基本的にはユーザー名とパスワード) が要求されるようにしたいと考えています。現在、これらの値は、公開されている各メソッドに引数として渡されています。これは、この状況を処理する適切な方法ですか? DRYに違反しているようで、もっと簡単な組み込みの方法があると思います。リクエストをインターセプトしてユーザー名とパスワードをヘッダーに挿入する例をいくつか見てきましたが、そのアプローチではクライアントの接続にかなりの労力がかかるようです。

ありがとう!

4

1 に答える 1

1

ユーザー名とパスワードを要求して送信するのではなく、トークンを返すログイン メソッドを用意して、それを渡してみませんか?

DRY を最小限に抑えたい場合は、次の操作を実行できます。

最初に、すべてのリクエスト コントラクトが継承する次のようなジェネリック クラスを作成します (ログインとログアウトを除く)。

[MessageContract]
public abstract class AuthenticatedRequest <T> {
    [MessageHeader]
    public string Token { get; set;]
}

private bool IsAuthenticated(string Token)次に、トークンをチェックするというプライベート関数を作成します。これにより、認証をチェックする式が最小限に抑えられます。

于 2011-12-27T15:58:32.357 に答える