Comment consommer tiers https wsdl du service web en c#
Dans SoapUI outil que j'ai configuré .Jks fichier avec les WS-les Configurations de Sécurité de Signature est BinarySecurityToken et de l'algorithme est CanonicalizationMethod et SignatureMethod il fonctionne parfaitement.
Maintenant, j'essaie de consommer le code C# comme ci-dessous :
SprintApiService.QueryCsaPortTypeClient client = new QueryCsaPortTypeClient();
ClientCredentials ce = new ClientCredentials();
string fileName = Server.MapPath("");
fileName = fileName + "/test-01.pfx";
ce.ClientCertificate.Certificate = new X509Certificate2(fileName, "tag123");
var val = ce.ClientCertificate.Certificate.GetSerialNumber();
ce.ClientCertificate.SetCertificate("CN=jaitest-01, OU=TPA, OU=BMP, OU=Projects, O=Sprint, C=us", StoreLocation.CurrentUser, StoreName.TrustedPeople);
System.IdentityModel.Selectors.SecurityTokenManager sTokenMgr = ce.CreateSecurityTokenManager();
//var sTokenMgr = ce.CreateSecurityTokenManager();
Mais je ne pouvais pas réussir. Je suis toujours d'être "Rejeté par le Client (Politique)" s'il vous plaît aider moi.
C'est l'exemple de la demande qui est créé dans l'outil SoapUI :
<wsse:Security SOAP-ENV:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsu:Timestamp wsu:Id="Timestamp-c55ce328-af36-4b0f-97d8-3bab57ee6a46" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsu:Created>2014-02-18T12:27:52Z</wsu:Created>
<wsu:Expires>2014-02-18T12:32:52Z</wsu:Expires>
</wsu:Timestamp>
<wsse:BinarySecurityToken wsu:Id="SecurityToken-1da2e6b0-3a0d-4943-bcae-de0805d9c4c5" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">MIIDmTCCAwKgAwIBAgIERxqCLDANBgkqhkiG9w0BAQUFADAeMQswCQYDVQQGEwJVUzEPMA0GA1UEChMGU3ByaW50MB4XDTExMDgwMjIwMDc0OVoXDTE4MDgwNDA0MDAwMFowYjELMAkGA1UEBhMCVVMxDzANBgNVBAoTBlNwcmludDERMA8GA1UECxMIUHJvamVjdHMxDDAKBgNVBAsTA0JNUDEMMAoGA1UECxMDVFBBMRMwEQYDVQQDEwpzcHJpbnQtbXNvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCG2yDWPQBNG9bjt+sVMzlaooX3jON7tOoqtIxPkXl7XCEvbzZpXL2tYtHXqxVfPo9h1weulbj0dE4LlVjlTjzW4upBI92StqDVYdzTLvZWie1fEslIThHDoX7paQpnrSew3TZ6fk4qVnF4h44J/rLnFt3jLEO6IyRhddganpoOowIDAQABo4IBnjCCAZowCwYDVR0PBAQDAgWgMCsGA1UdEAQkMCKADzIwMTEwODAyMjAwNzQ5WoEPMjAxODA4MDQwNDAwMDBaMBEGCWCGSAGG+EIBAQQEAwIFoDCB5AYDVR0fBIHcMIHZMDagNKAypDAwLjELMAkGA1UEBhMCVVMxDzANBgNVBAoTBlNwcmludDEOMAwGA1UEAxMFQ1JMMjkwgZ6ggZuggZiGSmxkYXA6Ly9jYXg1MDAxLnNwcmludC5jb206Mzg5L289U3ByaW50LGM9VVM/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlhkpsZGFwOi8vY2F4NTAwMi5zcHJpbnQuY29tOjM4OS9vPVNwcmludCxjPVVTP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/YmFzZTAfBgNVHSMEGDAWgBRFTY2yujBdccYEb58W/Dt7VY3NHzAdBgNVHQ4EFgQUzUEoNuQ9ummaIU8K6h28izpV2YUwCQYDVR0TBAIwADAZBgkqhkiG9n0HQQAEDDAKGwRWNy4xAwIDKDANBgkqhkiG9w0BAQUFAAOBgQCTDjwpnYdx9JZpBrIwm4qIF4tZmXCCUIBEcoER1oUw/NSdgbbRjpU5AxUR/aK1K3taa27HS+WBQYTeMw+Y/LFhp8m+UjHBx/O1kfk4JAz201Kk0HeGgFvt9sscLfK8YD0aavdDJ6Z0rMpHBlcv8VQ7P+1zqJLay3TY+atl9wuD/Q==</wsse:BinarySecurityToken>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<Reference URI="#Timestamp-c55ce328-af36-4b0f-97d8-3bab57ee6a46">
<Transforms>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>8H8usvOvRYPwOKHVHdOXO6Y3Cz4=</DigestValue>
</Reference>
<Reference URI="#Body-db900962-5b93-4a49-a70a-a1745bed8255">
<Transforms>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>54u/0PxaY+S7RigxrisF2Chnplc=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>HC10RHq8lweC1KLGAzw1pxjju5LbWASn5GUCxane36DqUxaXQQnBrF0fyBkpI70H+ncrYaO00sxVd1QWnLfYxzl/YEWfHus/qObmFckRnNsEnx9MV5ejHhntbXdzIc9RFbXoFGPcoEGAsKoUbeOi7UWKbofzATG6VMlKhLFz01k=</SignatureValue>
<KeyInfo>
<wsse:SecurityTokenReference xmlns="">
<wsse:Reference URI="#SecurityToken-1da2e6b0-3a0d-4943-bcae-de0805d9c4c5" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
</wsse:SecurityTokenReference>
</KeyInfo>
</Signature>
</wsse:Security>
Merci...
Vous devez vous connecter pour publier un commentaire.
Étapes suivies
Installer le client compte tenu de certificat (.pfx)
Ouvrez Microsoft Management Console (MMC) pour la commande exécuter tapez mmc → Saisir
un. Fichier → Ajouter/Supprimer un composant logiciel enfichable dans → Sélectionnez le certificat dans la zone de liste → Cliquez sur Ajouter → Sélectionnez Mon
Utilisateur actuel → Finition –> Cliquez sur Ok.
Répétez l'Étape 2 pour la Machine Locale (Ordinateur Local)
Installer Microsoft WSE (Web Services Enhancements) 2.0 SP3 /WSE 3.0 Remarque. WSE 2.0/3.0 prend en charge .Net Framework 2.0 uniquement.
http://www.microsoft.com/en-in/download/details.aspx?id=23689
Créer un nouveau projet d'application web dans Visual Studio
Développez votre projet → clic Droit sur la Référence → Ajouter une Référence de Service → Avancé → Ajouter une Référence Web → Coller à votre Service WSDL lien dans la zone de texte URL → Cliquez sur le bouton Go (flèche Pointant vers la droite) → Puisque c'est du https, il vous montrera avec popup avec le message d'avertissement, cliquez sur Oui jusqu'à ce qu'elle s'arrête → Saisir nom de la Référence Web et cliquez sur bouton Ajouter une Référence
Clic droit → Référence → Ajouter une référence → Cliquez sur Parcourir → \Program Files\Microsoft WSE\v2.0\ → Sélectionner “Microsoft.Web.Services2.dll” → Cliquez Sur Ajouter
Proxy/Stub de classe générée maintenant → Rechercher de Référence.cs fichier sous la Référence de dossier si pas visible, cliquez sur Afficher tous les fichiers dans l'Explorateur de solutions. → Ouvrir De Référence.cs fichier et Remplacer “le Système de.Web.Services.Les protocoles.SoapHttpClientProtocol” avec “WebServicesClientProtocol”
}
Ajoutez le code suivant dans votre page et d'Obtenir ClientBase64KeyId valeur de X509 Certficate Outil.
Démarrer → Program Files → Microsoft WSE 2.0 → Certificat X509 Outil → Sélectionner un Certificat de Localisation est de l'Ordinateur Local → Maux de Nom est Personnel → Cliquez sur Ouvrir Certificat Bouton avec la liste des certificats et sélectionnez s'approprie, qui est l'un installé à l'aide de la console MMC. Maintenant choisissez les valeurs de l'Identificateur de Clé (Based64 Codée) de la valeur et de l'utiliser de code ci-dessous. Si votre demande est Asp.Net l'application Web, il peut ne pas être accessible de façon cliquez sur "Afficher les Clés Privées des Propriétés de Fichier" et attribuer les autorisations de Sécurité dans le même outil lui-même.
Presque nous avons fait 70% du travail. Maintenant c'est partie très cruciale vas faire maintenant... Oui, nous allons appliquer la Politique de détails.Ce est tout au sujet de la Politique de Sécurité relative au Certificat X509 qui définit sur quelle partie il va Signer (Signature), le Cryptage, l'Intégrité, la Confidentialité et ainsi de suite. Pas de panique, nous avons aide appelée WSE 2.0 de l'Outil,
Oui chumma 🙂 essayez de Démarrer → Program Files → Microsoft WSE 2.0 → Éditeur de Configuration → Fichier → Ouvrir → Point sur le Web.config de votre application
Général => Cocher les deux Cases à Cocher
De sécurité, de Routage et de Filtres Personnalisés => Ils ne sont pas appelés à moi:)
Donc, Laissez-Le.
Politique => Très Important. 1. Cochez La Case Activer La Politique De 2.Cliquez Sur Ajouter → Nom
il /Entrez le nom → Suivant → Laisser par défaut (Secure Client
D'Application) → (Par Défaut) → Suivant → (Par Défaut: Certificat X509) →
Suivant → Sélectionnez le Certificat → choisir le certificat de l'
liste → Ok → Suivant → Terminer la
TokenIssuing => Laisser
Diagnostics => cochez la Case cases à cocher appropriées pour le suivi et l'
la journalisation but
Fichier → Enregistrer → Fermer 🙂
Maintenant, on aurait créé policyCache.config qui est référencé dans le site Web.fichier de configuration. Ici, nous avons ajouter notre HTTPS URL de service dans . Fait
Ceci est réalisé par WSE 2.0. Oui je sais c'est une vieille technologie. Je suis
essayer de consommer avec WCF en tant que Client... je vais poster la prochaine session....
🙂 Heureux De Programmation 🙂
JaiSankar