Partager via


Utiliser un comportement de service pour entrer des informations d’identification avec le Kit de développement logiciel (SDK) de l’adaptateur LOB WCF

Souvent, les consommateurs d’adaptateurs devront transmettre des informations d’identification au système métier cible. Pour fournir cette fonctionnalité, vous devez fournir un comportement de service WCF.

L’exemple de code suivant montre comment dériver un comportement de service. Il délègue les informations d’identification obtenues auprès du consommateur de l’adaptateur à l’adaptateur. L’adaptateur doit ensuite utiliser des protocoles métier pour authentifier les informations d’identification. Une fois les informations d’identification authentifiées, le service peut commencer à écouter les événements entrants à partir de l’application métier.

/// <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);  
    }  
}  

L’exemple de code suivant montre comment utiliser le comportement du service pour passer des informations d’identification à l’adaptateur.

// 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();  

Voir aussi

Meilleures pratiques de développement à l’aide du Kit de développement logiciel (SDK) de l’adaptateur LOB WCF