


Partage de solutions à certains problèmes lorsque ASP.NET utilise X509Certificate2 (image)
Cet article présente principalement en détail ASP.NET comment résoudre une série de problèmes lors de l'utilisation de X509Certificate2, qui a une certaine valeur de référence. les amis intéressés peuvent se référer à
Lors des remboursements via le paiement WeChat, en raison de la nécessité d'utiliser le certificat p12, une série de pièges ont été rencontrés. Notez-le ici pour pouvoir vous y référer facilement plus tard.
Code original pour charger le certificat :
Copier le code Le code est le suivant :
1 X509Certificate2 cert = new X509Certificate2(path + WxPayConfig.SSLCERT_PATH, WxPayConfig.SSLCERT_PASSWORD);2 Request.ClientCertificates.Add(cert);
Testé sur vs. Réussi. Mais ce problème continue à être signalé lors du déploiement sur IIS :
Copier le code Le code est le suivant :
System.Security.Cryptography.CryptographicException: 系统找不到指定的文件。
Informations détaillées sur la trace de pile :
sur System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
sur System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr Mot de passe, UINT32 DWFLAGS, Boolean Persist Key Set , SafecertContexthan DL E & PCERTCTX)
.X509certificationEs.x509certified.loadcertifiedFromFile (String fileName, Object mot de passe, Byte[]
xml
, String url, Boolean isUseCert, Int32 timeout). Après des tests répétés, il a été confirmé qu'il ne s'agissait pas d'un problème avec le code ou le chemin du fichier. Après avoir recherché
la documentation de Microsoft, j'ai trouvé des instructions pertinentes et signalé le problème. Je partagerai mon processus de fonctionnement ci-dessous.
jusqu'à Cliquez sur [Démarrer] -> [Exécuter] -> Entrez dans l'interface "Console" -> Sélectionnez [Fichier] -> [Ajouter/
Supprimer Sélectionnez [Certificat] -> [Compte d'ordinateur] -> [Suivant] -> [Terminé]
Importez votre fichier de certificat
2. Certificat d'autorisation
Resource KitsTools ou C:Program FilesWindows Resource KitsTools. Ouvrez cmd et tapez la commande :
Copiez le code Le code est le suivant :
winhttpcertcfg -g -c LOCAL_MACHINEMY -s "Votre nom de certificat" -a " Votre identifiant de compte IIS "-g la commande est l'autorisation
-c fait référence à la zone de stockage où se trouve le certificat De plus, le nom du certificat est celui-ci , comme le montre l'imageau lieu de Quelque chose d'autre, j'ai juste fait une erreur, j'ai cliqué sur les détails de ce certificat et j'ai pris le nom à l'intérieur, provoquant l'échec de l'autorisation.
L'identification du compte iis fait référence au pool d'applications correspondant au site. Il existe une option pour identifier l'utilisateur correspondant dans les paramètres avancés. L'identité que j'ai autorisée à ce moment-là était Network Service, et l'identité dans le pool d'applications était ApplicationPoolIdentity. Par conséquent, lorsque j'ai lancé une demande, il est apparu :
Copier le code
sécurisé.
Après avoir terminé ces configurations, modifiez le code de chargement du certificat avant.复制代码 代码如下:
1 X509Store store = new X509Store("My", StoreLocation.LocalMachine); 2 store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); 3 4 System.Security.Cryptography.X509Certificates.X509Certificate2 cert = 5 store.Certificates.Find(X509FindType.FindBySubjectName, "你的证书名称", false)[0];
再测试一下,终于成功!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les méthodes d'utilisation des symboles dans la couverture du langage C Couverture arithmétique, l'affectation, les conditions, la logique, les opérateurs de bits, etc. Les opérateurs arithmétiques sont utilisés pour les opérations mathématiques de base, les opérateurs d'affectation sont utilisés pour les opérations et les opérations de la soustraction, la multiplication et les opérations de division, les opérations BIT sont utilisé pointeurs nuls, marqueurs de fin de fichier et valeurs non nucères.

En C, le type de char est utilisé dans les chaînes: 1. Stockez un seul caractère; 2. Utilisez un tableau pour représenter une chaîne et se terminer avec un terminateur nul; 3. Faire fonctionner via une fonction de fonctionnement de chaîne; 4. Lisez ou sortant une chaîne du clavier.

Dans le langage C, les caractères spéciaux sont traités à travers des séquences d'échappement, telles que: \ n représente les pauses de ligne. \ t signifie le caractère d'onglet. Utilisez des séquences d'échappement ou des constantes de caractères pour représenter des caractères spéciaux, tels que char c = '\ n'. Notez que l'arrière-plan doit être échappé deux fois. Différentes plates-formes et compilateurs peuvent avoir différentes séquences d'échappement, veuillez consulter la documentation.

Dans le langage C, la principale différence entre Char et WCHAR_T est le codage des caractères: Char utilise ASCII ou étend ASCII, WCHAR_T utilise Unicode; Char prend 1 à 2 octets, WCHAR_T occupe 2-4 octets; Char convient au texte anglais, WCHAR_T convient au texte multilingue; Le char est largement pris en charge, WCHAR_T dépend de la prise en charge du compilateur et du système d'exploitation Unicode; Le char est limité dans la gamme de caractères, WCHAR_T a une gamme de caractères plus grande et des fonctions spéciales sont utilisées pour les opérations arithmétiques.

La différence entre le multithreading et l'asynchrone est que le multithreading exécute plusieurs threads en même temps, tandis que les opérations effectuent de manière asynchrone sans bloquer le thread actuel. Le multithreading est utilisé pour les tâches à forte intensité de calcul, tandis que de manière asynchrone est utilisée pour l'interaction utilisateur. L'avantage du multi-threading est d'améliorer les performances informatiques, tandis que l'avantage des asynchrones est de ne pas bloquer les threads d'interface utilisateur. Le choix du multithreading ou asynchrone dépend de la nature de la tâche: les tâches à forte intensité de calcul utilisent le multithreading, les tâches qui interagissent avec les ressources externes et doivent maintenir la réactivité de l'interface utilisateur à utiliser asynchrone.

Dans le langage C, la conversion de type char peut être directement convertie en un autre type par: Casting: Utilisation de caractères de casting. Conversion de type automatique: Lorsqu'un type de données peut accueillir un autre type de valeur, le compilateur le convertit automatiquement.

Il n'y a pas de fonction de somme intégrée dans le langage C, il doit donc être écrit par vous-même. La somme peut être obtenue en traversant le tableau et en accumulant des éléments: Version de boucle: la somme est calculée à l'aide de la longueur de boucle et du tableau. Version du pointeur: Utilisez des pointeurs pour pointer des éléments de tableau, et un résumé efficace est réalisé grâce à des pointeurs d'auto-incitation. Allouer dynamiquement la version du tableau: allouer dynamiquement les tableaux et gérer la mémoire vous-même, en veillant à ce que la mémoire allouée soit libérée pour empêcher les fuites de mémoire.

Le Array Char stocke des séquences de caractères en C et est déclaré Char Array_name [Taille]. L'élément d'accès est passé par l'opérateur d'indice, et l'élément se termine par le terminateur nul «\ 0», qui représente le point final de la chaîne. Le langage C fournit une variété de fonctions de manipulation de cordes, telles que strlen (), strcpy (), strcat () et strcmp ().
