So übergeben Sie ein Zertifikat an WSTrust, um das Saml-Token zu erhalten

Hier ist ein Beispiel für das Abrufen eines Tokens mit WSTrustChannelFactory.Von hie.

var stsBinding = new WS2007HttpBinding();
stsBinding.Security.Mode = SecurityMode.TransportWithMessageCredential;
stsBinding.Security.Message.EstablishSecurityContext = false;
stsBinding.Security.Message.NegotiateServiceCredential = false;
stsBinding.Security.Message.ClientCredentialType = MessageCredentialType.Certificate;


WSTrustChannelFactory trustChannelFactory = new WSTrustChannelFactory(
    stsBinding
    , new EndpointAddress(tokenurl)
    );
trustChannelFactory.TrustVersion = System.ServiceModel.Security.TrustVersion.WSTrust13;

X509Store myStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
myStore.Open(OpenFlags.ReadOnly);
X509Certificate2Collection coll = myStore.Certificates.Find(X509FindType.FindBySerialNumber, "MycertSerialNumber", true);
X509Certificate2 cert = coll[0];
trustChannelFactory.Credentials.ClientCertificate.Certificate = cert;

WSTrustChannel channel = (WSTrustChannel)trustChannelFactory.CreateChannel();

RequestSecurityToken rst = new RequestSecurityToken(RequestTypes.Issue, keyType);
rst.AppliesTo = new EndpointAddress(realm);
RequestSecurityTokenResponse rstr = null;
rst.TokenType = SecurityTokenTypes.Saml;

SecurityToken token = channel.Issue(rst, out rstr);

Now Ich habe keinen Benutzernamen / Passwort, aber der Anbieter hat mir eine PFX-Datei mit Zertifikat gegeben. Wie gebe ich es an die WSTrushChannelFactory weiter? Ich habe versucht, CertificateBinding zu verwenden, aber keinen Erfolg.

Updated Code oben: 05.11.2014:

Diesen Fehler bekommen: ID3242: Das Sicherheitstoken konnte nicht authentifiziert oder autorisiert werden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage