3)True、wsHttpBindingおよびwsDualHttpBindingは、セッションをサポートする唯一のHTTPバインディングです。
5)False、サービスの呼び出し元を認証するために、必ずしもトランスポートレベルのセキュリティ(SSL / HTTPSなど)を持っている必要はありません。唯一の要件は、仮想ディレクトリに対して統合Windows認証を有効にするようにIISを構成することです。次に、WCFでは、このシナリオを有効にする3つの可能性があります。
a)Windowsクレデンシャル(HTTPS)を使用したwsHttpBindingでトランスポートレベルのセキュリティを使用する
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="SecurityEnabledWsHttp">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</wsHttpBinding>
</bindings>
</system.serviceModel>
b)Windowsクレデンシャル(HTTP)を使用したwsHttpBindingでメッセージレベルのセキュリティを使用する
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="SecurityEnabledWsHttp">
<security mode="Message">
<message clientCredentialType="Windows" />
</security>
</binding>
</wsHttpBinding>
</bindings>
</system.serviceModel>
c)ASP.NET互換モードでサービスを実行し、ASP.NET(HTTP)でWindows認証を有効にします
<system.web>
<authentication mode="Windows" />
</system.web>
aとbでは、次の方法でサービス内から発信者のIDにアクセスすることに注意してください。
OperationContext.Current.ServiceSecurityContext.WindowsIdentity
6) HTTPSを使用するには、 wsHttpBindingでトランスポートレベルのセキュリティを有効にする必要があります。
7)False、Reliable Sessionsは、 WCFセッション用のReliableMessagingの特定の実装です。Reliable Messagingは、信頼性の低いネットワークでのメッセージ配信を保証するために設計されたWS-*標準仕様です。信頼性の高いメッセージングなしでWCFセッションを使用でき、その逆も可能です。セッションは、次の属性を持つサービスコントラクトで有効になります。
[ServiceContract(SessionMode=SessionMode.Required)]
public interface IMyService {
// ...
}
また、サービスコール間で状態を維持するには、サービスコントラクトの実装で適切なインスタンスモードを明示的に有効にする必要があることにも注意してください。
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
public class MyService : IMyService {
// ...
}
WCFには、セキュアセッションと信頼性の高いセッションの2種類のセッションがあります。wsHttpBindingとnetTcpBindingの両方のデフォルト設定は、セキュアセッションを使用することです。
wsHttpBindingの場合、これは、バインディングのデフォルト設定であるクライアントの資格情報を使用することにより、メッセージレベルのセキュリティで実現されます。代わりにnetTcpBindingの場合、セッションはTCPプロトコルの機能を使用してトランスポートレベルで確立されます。
これは、wsHttpBindingまたはnetTcpBindingに切り替えるだけで、WCFセッションのサポートが有効になることを意味します。別の方法は、信頼できるセッション
を使用することです
。これは、バインディング構成で明示的に有効にする必要があり、wsHttpBindingにメッセージ・セキュリティーを使用する必要がなくなります。したがって、これは機能します:
<bindings>
<wshttpbinding>
<binding name="ReliableSessionEnabled">
<reliablesession enabled="True" ordered="False" />
<security mode="None" />
</binding>
</wshttpbinding>
</bindings>
8)False、信頼できるセッションは、通信チャネルのセキュリティ設定とは関係なく使用されます。
より詳細な説明については、この記事をご覧ください。