あなた自身をロールしたり、明示的なパラメータを追加したりしないでください。実際にはあまりにも多くの作業が必要です。
WCFのセキュリティ機能をチェックしてください - それらの多くは利用可能です!たとえば、メッセージを保護し、メッセージの中に資格を入れてください。あなたの側で余分なコーディングは必要ありません。
ミケーレルルーブスタマンテにより、WCFセキュリティ上のこの優れた記事チェックアウト:あなたのケースではhttp://www.devx.com/codemag/Article/33342
を、私は、ユーザー名の資格情報を使用してメッセージセキュリティをお勧めしたい - あなたは、両端にこれを設定する必要があります。
サーバー側:あなたは、クライアント側で同じ設定を適用する必要が
<bindings>
<basicHttpBinding>
<binding name="SecuredBasicHttp" >
<security mode="Message">
<message clientCredentialType="UserName"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="YourService">
<endpoint address="http://localhost:8000/MyService"
binding="basicHttpBinding"
bindingConfiguration="SecuredBasicHttp"
contract="IYourService" />
</service>
</services>
そして:
<bindings>
<basicHttpBinding>
<binding name="SecuredBasicHttp" >
<security mode="Message">
<message clientCredentialType="UserName"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:8000/MyService"
binding="basicHttpBinding"
bindingConfiguration="SecuredBasicHttp"
contract="IYourService" />
</client>
今、あなたのサーバとクライアントがセキュリティに合意 - クライアント上で、あなたは次のように使用するユーザー名とパスワードを指定したい:サーバー側で
YourServiceClient client = new YourServiceClient();
client.ClientCredentials.UserName.UserName = "your user name";
client.ClientCredentials.UserName.Password = "top$secret";
、あなたが必要となります通常はWindowsドメイン(Active Directory)に対して、またはASP.NETメンバーシッププロバイダモデルに対して、これらのユーザー資格情報の検証方法を設定します。いずれにしても、定義したストアに対してユーザーの資格情報を検証できない場合、その呼び出しは拒否されます。
これはビットセキュリティがWCFの大きな話題であり、たくさんのオプションを持っていることを願っています。少し難しいかもしれませんが、最終的には通常意味があります! :-)
マーク
いいですね。生のhttpwebrequestを使用している場合、これ(または同様のもの)が使用可能かどうか知りませんか?私は同じ方法で保護したいカスタムRPCスタックを持っています(私はもちろん、新しいクエストンとして尋ねることができます)。 –
それははいです。 http://www.silverlightshow.net/items/Cookies-in-Silverlight-Web-Requests.aspx – blowdart
Taを参照してください。私はそれを見ます;-p –