潜在的に数万のクライアントが中央サーバーにデータを認証して送信するエンタープライズタイプのWCFサービスの場合、セッションまたは認証に関して「ベスト」プラクティスは何ですか?
- WCFはセッションをサポートしていますか?はいの場合、それを使用する必要がありますか?または、呼び出しごとにユーザー名/パスワードを渡すだけでよいですか?
潜在的に数万のクライアントが中央サーバーにデータを認証して送信するエンタープライズタイプのWCFサービスの場合、セッションまたは認証に関して「ベスト」プラクティスは何ですか?
ブローダートが述べたように、WCFセッションはASP.NETセッションと同じではありません。ここでそれらを読むことができます:http://msdn.microsoft.com/en-us/library/ms733040.aspx。独自のセキュリティを導入する前に、WCFがすぐに使用できるもの(http://msdn.microsoft.com/en-us/library/ms734736.aspx )について理解しておく必要があります。多くのコードを書かなくても、目標に近づくことができます。具体的には、「方法:安全なセッションを作成する」を確認してください。安全なセッションでは、クライアントとサーバーが資格情報をキャッシュするため、リクエストごとに完全に認証する必要はありません。デフォルトでは、Webサーバーがリサイクルされると、安全なセッションが失われます。リサイクルを通じて続く安全なセッションが必要な場合は、次のことを確認してください。方法:セキュアセッション用のステートフルセキュリティコンテキストトークンを作成します。
WCFはセッションをサポートしますはい。ただし、ASP.NETセッションとは異なります。セッションは、メッセージを順番に(およびその他のビットやボブ)配信するために存在しますが、呼び出し間に共有ストレージを追加するために存在するわけではありません。
認証されたサービスコールの場合、毎回認証の詳細を送信する必要があります。セキュリティはメッセージごとに適用されます。
IIS 内でサービスをホストする場合、サービスの動作に対して aspnetcompatibility を有効にすることで、ASP.NET からのセッションを引き続き使用できます。