Uprawnienia prywatne PrivateKey dla certyfikatów lokalnych komputerów „Zaufane korzenie”

Mam certyfikat, do którego należy zaimportowaćCertyfikaty / Zaufane główne urzędy certyfikacji i ma odpowiedni klucz prywatny.

Aby uzyskać dostęp do klucza z kodu, należy ustawić uprawnienia klucza prywatnego, aby nadać pełny dostęp do określonej puli aplikacji IIS. Całkowicie rozumiem, ale problem polega na tym, że można to ustawić tylko na certyfikatach osobistych, a nie zaufanych.

Próbowałem dodać ten sam certyfikat do magazynu osobistego, a następujący kod nie łamie się:

<code>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();
</code>

Ustawienie uprawnień do certyfikatu w sklepie osobistym działa, jeśli się zmienięStoreName.Root doStoreName.My. Mam tam dostęp. Ale nie jestem w stanie uzyskać do niego dostępu roota. Po prostu mówi:

Zestaw kluczy nie istnieje

Jakieś sugestie?

Dodatkowe informacje

Jeśli ustawię tożsamość pul aplikacji naSystem lokalny (który ma całkowite uprawnienia do mojego komputera) mogęz powodzeniem dostęp do klucza prywatnego. Więc główne pytanie brzmi: jak ustawić uprawnienia do mojej puli aplikacji, aby mieć dostęp do kluczy prywatnych dla certyfikatów w zaufanym magazynie głównym.

Dlaczego zaufany magazyn główny i nie osobisty?
Mam wbudowany zestaw, który uzyskuje dostęp do tego certyfikatu w tym konkretnym sklepie, więc po prostu umieszczenie certyfikatu w sklepie osobistym nie pomoże mi. Dlatego ustawianie uprawnień zaufania do kluczy prywatnych zaufanych certyfikatów głównych jest konieczne.

questionAnswers(3)

yourAnswerToTheQuestion