PrivateKey autorisations de confiance pour la machine locale racines de Confiance” des certificats

J'ai un certificat qui doit être importé dans les Certificats et/ou Autorités de Certification Racine approuvées et possède une clé privée correspondante.

Pour accéder à la clé de code dont vous avez besoin pour définir la clé privée autorisations à accorder un accès complet à particulier pool d'applications IIS. Je comprends tout à fait, mais le problème est que cela ne peut être réglé que sur les certificats personnels et pas racine de confiance.

J'ai essayé d'ajouter le même certificat pour le magasin et le code suivant ne rompt pas:

X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);

foreach (X509Certificate2 cert in store.Certificates)
{
    if (cert.HasPrivateKey)
    {
        //access private key here
    }
}

store.Close();

Définition des autorisations sur le certificat dans le magasin fonctionne si je change StoreName.Root à StoreName.My. Je suis en mesure d'y accéder. Mais je ne suis pas en mesure d'accéder à la racine. Il dit seulement:

Jeu de clés n'existe pas

Des suggestions?

Des informations supplémentaires

Si j'ai mis mes pools d'identité à Système Local (qui a le total des autorisations sur ma machine) je peux avec succès accès à la clé privée. Donc, la question principale est de savoir comment définir des autorisations sur mon identité de pool d'applications d'avoir accès aux clés privées des certificats dans le magasin Racine de Confiance.

Pourquoi magasin racine de confiance et pas de personnel?
J'ai un pré-construit assemblée qui accède à ce certificat, dans ce magasin, il suffit de placer le certificat dans le magasin Personnel ne suffit pas pour moi. C'est pourquoi le réglage de la confiance des autorisations sur les clés privées des certificats racine de confiance est impératif.

OriginalL'auteur Robert Koritnik | 2012-05-14