Freigeben über


Verwenden eines Dienstverhaltens zum Eingeben von Anmeldeinformationen mit dem WCF LOB Adapter SDK

Häufig müssen Adapterverbraucher Anmeldeinformationen an das Zielunternehmenssystem übergeben. Um diese Funktionalität bereitzustellen, müssen Sie ein WCF-Dienstverhalten angeben.

Der folgende Beispielcode veranschaulicht, wie ein Dienstverhalten abgeleitet wird. Die vom Consumer des Adapters abgerufenen Anmeldeinformationen werden an den Adapter delegiert. Der Adapter muss dann Branchenprotokolle verwenden, um die Anmeldeinformationen zu authentifizieren. Nachdem die Anmeldeinformationen authentifiziert wurden, kann der Dienst damit beginnen, auf eingehende Ereignisse aus der Branchenanwendung zu lauschen.

/// <summary>  
/// This class derives from a WCF service behavior.  It is used in the inbound scenario  
/// for the Inbound Service to pass the line-of-business credentials to the adapter using  
/// WCF ClientCredentials class.  
/// </summary>  
public class InboundClientCredentialsServiceBehavior : ClientCredentials, IServiceBehavior  
{  
    public InboundClientCredentialsServiceBehavior() { }  
  
    public InboundClientCredentialsServiceBehavior(InboundClientCredentialsServiceBehavior other)  
         : base(other)  
    {  
    }  
  
    #region IServiceBehavior Members  
  
    public void AddBindingParameters(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase, System.Collections.ObjectModel.Collection<ServiceEndpoint> endpoints, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)  
    {  
        bindingParameters.Add(this);  
    }  
  
    public void ApplyDispatchBehavior(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase)  
    {  
    }  
  
    public void Validate(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase)  
    {  
    }  
  
    #endregion  
  
    protected override ClientCredentials CloneCore()  
    {  
        return new InboundClientCredentialsServiceBehavior(this);  
    }  
}  

Der folgende Beispielcode zeigt, wie Sie das Dienstverhalten verwenden, um Anmeldeinformationen an den Adapter zu übergeben.

// Create a ServiceHost for the EchoServiceImpl type  
// and use the base address from app.config  
ServiceHost host = new ServiceHost(typeof(EchoServiceImpl));  
  
// Set service behavior to pass the line-of-business credentials.  
InboundClientCredentialsServiceBehavior credentialsBehavior = new InboundClientCredentialsServiceBehavior();  
credentialsBehavior.UserName.UserName = "username";  
credentialsBehavior.UserName.Password = "****";  
host.Description.Behaviors.Add(credentialsBehavior);  
  
// Open the ServiceHost to start listening for messages  
host.Open();  
  
Console.WriteLine("The service is ready.");  
Console.WriteLine("Press <ENTER> to terminate service.");  
Console.ReadLine();  
  
// Close the ServiceHost  
host.Close();  

Weitere Informationen

Bewährte Methoden für die Entwicklung mithilfe des WCF LOB Adapter SDK