2009-04-28 8 views
0

Ich verwende die folgende Funktion ein System.ServiceModel.EndpointAddress zu erstellen, wenn auf einen WCF-Dienst verbinden:Programmatically gesetzt Identität auf WCF EndpointAddress

private static EndpointAddress GetEndPointAddress(string url, EndpointIdentity identity) 
{ 
    Uri baseAddress = new Uri(url); 
    EndpointAddress endpointAddress = new EndpointAddress(
     baseAddress, 
     identity, 
     new AddressHeaderCollection()); 
    return endpointAddress; 
} 

ich in einem EndPointIdentity übergeben muß, die von meiner Web mit dem folgenden Auszug korreliert. config:

<identity> 
    <dns value="Some Value" /> 
</identity> 

Mein WCF-Dienst verwendet ein X509-Zertifikat, so scheint es, dass meine Identität X509CertificateEndpointIdentity seinen Typen muss. Der Konstruktor hierfür verlangt, dass ich ein Zertifikat übergebe ... aber ich möchte ihm einen DNS-Wert geben, wie oben gezeigt.

Kann jemand vorschlagen, was mit meiner Annäherung falsch ist?

Antwort

5

In der Tat brauchte ich eine DnsEndpointIdentity zu erstellen, wie folgt:

DnsEndpointIdentity identity = new DnsEndpointIdentity("Some value"); 
Verwandte Themen