Как получить доступ к закрытому ключу с помощью учетной записи пользователя ASPNET? - PullRequest
1 голос
/ 03 октября 2008

У меня проблемы с импортом и доступом к закрытому ключу пользователя ASPNET. Я знаю, что когда вы импортируете закрытый ключ (файл .pfx) вручную, в Windows вы получаете возможность пометить ключ как экспортируемый. Теперь, насколько я могу судить, это необходимо для того, чтобы впоследствии получить этот закрытый ключ.

Моя проблема заключается в том, что я импортирую закрытый ключ в коде как пользователь ASPNET, и, похоже, нет способа пометить его как экспортируемый, как это делает мастер импорта сертификатов Windows. Чтобы уточнить, импорт работает просто отлично, но когда я получаю доступ к сведениям о теперь импортированном сертификате, данные личного ключа отсутствуют.

Это код, который я использую для импорта сертификата, когда я уже открыл файл .pfx с правильным паролем.

public void ImportCertificate(X509Certificate2 cert, StoreName name, StoreLocation loc)
{
    X509Store certStore = new X509Store(name, loc);
    StorePermission permission = new StorePermission(PermissionState.Unrestricted);
    permission.Flags = StorePermissionFlags.AddToStore;
    permission.Assert();
    certStore.Open(OpenFlags.ReadWrite);
    certStore.Add(cert);
    certStore.Close();
}

Я испортил разрешения или как я импортировал этот закрытый ключ? Или я совсем не так?

1 Ответ

1 голос
/ 03 октября 2008

Полагаю, вам нужно установить флаг X509KeyStorageFlags.Exportable при импорте сертификата. Вы не показываете этот код, но есть перегрузка метода Import с этой подписью:

public override void Import(string fileName, string password, 
                            X509KeyStorageFlags keyStorageFlags);

или этот:

public override void Import(byte[] rawData, string password, 
                            X509KeyStorageFlags keyStorageFlags);

Что позволит вам установить его перед импортом. В остальном все выглядит хорошо!

Richard

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...