方法 : 指定した認証モード用の SecurityBindingElement を作成する

Windows Communication Foundation (WCF) には、クライアントとサービスが互いに認証するためのモードが複数あります。これらの認証モード用のセキュリティ バインド要素は、次の例のように、SecurityBindingElement クラスの静的メソッドまたは構成を使用して作成できます。

18 個の認証モード詳細情報、「SecurityBindingElement 認証モード」を参照してください。

次のコード例では、複数の認証モードのバインディングを作成するメソッドを示します。

Aa702632.note(ja-jp,VS.100).gif注 :
SecurityBindingElement オブジェクトのインスタンスが一度作成されると、KeyTypeMessageSecurityVersion などの多数のプロパティは変更できなくなります。これらのプロパティで set を呼び出しても変更されません。

' These public methods create custom bindings based on the built-in 
' authentication modes that use the static methods of 
' the System.ServiceModel.Channels.SecurityBindingElement class.
Public Shared Function CreateAnonymousForCertificateBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement.CreateAnonymousForCertificateBindingElement())
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpTransportBindingElement())
    Return New CustomBinding(bec)
End Function 


Public Shared Function CreateAnonymousForSslNegotiatedBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement.CreateSslNegotiationBindingElement(False))
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpTransportBindingElement())
    Return New CustomBinding(bec)
End Function         

Public Shared Function CreateCertificateOverTransportBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement.CreateCertificateOverTransportBindingElement())
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpsTransportBindingElement())
    Return New CustomBinding(bec)
End Function 

Public Shared Function CreateIssuedTokenBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement.CreateIssuedTokenBindingElement( _
            New IssuedSecurityTokenParameters()))
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpTransportBindingElement())
    Return New CustomBinding(bec)
End Function         

Public Shared Function CreateIssuedTokenForCertificateBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement. _
        CreateIssuedTokenForCertificateBindingElement( _
        New IssuedSecurityTokenParameters()))
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpTransportBindingElement())
    Return New CustomBinding(bec)
End Function 

Public Shared Function CreateIssuedTokenForSslNegotiatedBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement. _
        CreateIssuedTokenForSslBindingElement( _
        New IssuedSecurityTokenParameters()))
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpTransportBindingElement())
    Return New CustomBinding(bec)
End Function 

Public Shared Function CreateIssuedTokenOverTransportBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement. _
       CreateIssuedTokenOverTransportBindingElement( _
          New IssuedSecurityTokenParameters()))
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpsTransportBindingElement())
    Return New CustomBinding(bec)
End Function         

Public Shared Function CreateKerberosBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement.CreateKerberosBindingElement())
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpTransportBindingElement())
    Return New CustomBinding(bec)
End Function 

Public Shared Function CreateKerberosOverTransportBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement. _
        CreateKerberosOverTransportBindingElement())
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpsTransportBindingElement())
    Return New CustomBinding(bec)
End Function 

Public Shared Function CreateMutualCertificateBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement.CreateMutualCertificateBindingElement())
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpTransportBindingElement())
    Return New CustomBinding(bec)
End Function 

Public Shared Function CreateMutualCertificateDuplexBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement. _
        CreateMutualCertificateDuplexBindingElement())
    bec.Add(New CompositeDuplexBindingElement())
    bec.Add(New OneWayBindingElement())
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpTransportBindingElement())
    Return New CustomBinding(bec)
End Function 

Public Shared Function CreateMutualSslNegotiatedBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement. _
        CreateSslNegotiationBindingElement(True))
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpTransportBindingElement())
    Return New CustomBinding(bec)
End Function 

Public Shared Function CreateSecureConversationBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement. _
        CreateSecureConversationBindingElement( _
        SecurityBindingElement.CreateSspiNegotiationBindingElement()))
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpTransportBindingElement())
    Return New CustomBinding(bec)
End Function 

Public Shared Function CreateSspiNegotiatedBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement.CreateSspiNegotiationBindingElement())
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpTransportBindingElement())
    Return New CustomBinding(bec)
End Function 


Public Shared Function CreateSspiNegotiatedOverTransportBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement. _
        CreateSspiNegotiationOverTransportBindingElement())
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpsTransportBindingElement())
    Return New CustomBinding(bec)
End Function 

Public Shared Function CreateUserNameForCertificateBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement.CreateUserNameForCertificateBindingElement())
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpTransportBindingElement())
    Return New CustomBinding(bec)
End Function 

Public Shared Function CreateUserNameForSslNegotiatedBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement.CreateUserNameForSslBindingElement())
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpTransportBindingElement())
    Return New CustomBinding(bec)

End Function 'CreateUserNameForSslNegotiatedBinding


Public Shared Function CreateUserNameOverTransportBinding() As Binding 
    Dim bec As New BindingElementCollection()
    bec.Add(SecurityBindingElement.CreateUserNameOverTransportBindingElement())
    bec.Add(New TextMessageEncodingBindingElement())
    bec.Add(New HttpsTransportBindingElement())
    Return New CustomBinding(bec)

End Function 
// These public methods create custom bindings based on the built-in 
// authentication modes that use the static methods of 
// the System.ServiceModel.Channels.SecurityBindingElement class.
public static Binding CreateAnonymousForCertificateBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateAnonymousForCertificateBindingElement());
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateAnonymousForSslNegotiatedBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateSslNegotiationBindingElement(false));
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateCertificateOverTransportBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateCertificateOverTransportBindingElement());
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpsTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateIssuedTokenBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateIssuedTokenBindingElement(
        new IssuedSecurityTokenParameters()));
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateIssuedTokenForCertificateBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateIssuedTokenForCertificateBindingElement(
        new IssuedSecurityTokenParameters()));
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateIssuedTokenForSslNegotiatedBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateIssuedTokenForSslBindingElement(
        new IssuedSecurityTokenParameters()));
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateIssuedTokenOverTransportBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateIssuedTokenOverTransportBindingElement(
        new IssuedSecurityTokenParameters()));
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpsTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateKerberosBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.CreateKerberosBindingElement());
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateKerberosOverTransportBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateKerberosOverTransportBindingElement());
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpsTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateMutualCertificateBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateMutualCertificateBindingElement());
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateMutualCertificateDuplexBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateMutualCertificateDuplexBindingElement());
    bec.Add(new CompositeDuplexBindingElement());
    bec.Add(new OneWayBindingElement());
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateMutualSslNegotiatedBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateSslNegotiationBindingElement(true));
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateSecureConversationBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateSecureConversationBindingElement(
        SecurityBindingElement.CreateSspiNegotiationBindingElement()));
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateSspiNegotiatedBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.CreateSspiNegotiationBindingElement());
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateSspiNegotiatedOverTransportBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateSspiNegotiationOverTransportBindingElement());
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpsTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateUserNameForCertificateBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateUserNameForCertificateBindingElement());
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateUserNameForSslNegotiatedBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.CreateUserNameForSslBindingElement());
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpTransportBindingElement());
    return new CustomBinding(bec);
}

public static Binding CreateUserNameOverTransportBinding()
{
    BindingElementCollection bec = new BindingElementCollection();
    bec.Add(SecurityBindingElement.
        CreateUserNameOverTransportBindingElement());
    bec.Add(new TextMessageEncodingBindingElement());
    bec.Add(new HttpsTransportBindingElement());
    return new CustomBinding(bec);
}

参照

概念

SecurityBindingElement 認証モード
方法 : SecurityBindingElement を使用してカスタム バインディングを作成する