2009-06-04 9 views
1

私はクライアントのユーザー名とパスワードの資格情報を指定できるサービス/エンドポイントの動作を作成しようとしていますが、WCFセキュリティを掘り下げていますが、私はそれのために組み込み機能を使用して満足している)。私の目的は、JSONPで使用するためにクエリ文字列にユーザー名(パスワードなし)を指定することです。カスタムクライアントの資格情報タイプ(クエリー文字列のユーザー名)

これまでのところ、私の脳から耳が漏れるだけです。誰かが私を正しい方向に向けることができますか?

私たちはここにいますが、誰でもclientCredentialsとserviceCredentialsの違いを説明できますか?

私は.NET 3.5 SP1でWCFを使用しています。

編集:私はMSDNの記事[How To:カスタムクライアントとサービスの資格情報を作成| http://msdn.microsoft.com/en-us/library/ms730868(VS.85).aspx]しかし、それはあなたに何を延ばすべきかを示す上ではすばらしいことですが、それぞれの責任はありません。リフレクターを使用しても、私はちょうど、どのクラス/インターフェースが実際にリクエストから信任状を選ぶか(HTTPヘッダーかどうかなど)を見つけることができないようです。

編集2:従来の認証方法を使用した名前付きパイプバインディングがあるため、aspnetとの互換性を使用しないでください。

編集3:誰かがそれを考える前に、私はusername:[email protected]形式を認識していますが、少なくともIE8では無効になっています。これは、テストページの<スクリプト>タグに含まれていても、自動的に拒否されたようです。

+0

私はこの質問への回答を探していますが、QueryString引数の代わりにHTTP Cookiesを使用したいと思います。また、私もカスタムのクライアントとサービスの資格情報を作成するためのMSDNの記事を読んでおり、実際に要求に資格情報をどのように添付するかを示すのは貧弱だということに同意します。私が何かを見つけたらここに戻ってきます。 –

答えて

3

クライアントクレジットは、クライアントがサービスに提供するものです。 ServiceCredentialsは、構成で相互認証が必要な場合にサービスがクライアントに提供するものです。クライアント側では

WSHttpBinding b = new WSHttpBinding(SecurityMode.Transport); 
b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic; 

:サービス側で

proxy.ClientCredentials.UserName.UserName = "username"; 
proxy.ClientCredentials.UserName.Password = "password"; 

OR

あなたはBasicHttpBindingを使用している場合は、look at thisを取ります。ここで

ClientCredentialTypeのユーザー名は、「クライアントがユーザー名認証情報を使用して認証されることを示します。」カスタムのユーザー名/パスワードのバリデータを作成する

OR

Here is an example

私はここに役立つことを願っています。 :-)

関連する問題