Как я могу добавить правило доступа (CryptoAccessRule) к уже / ранее созданному и назначенному (уже назначенному некоторому правилу доступа по умолчанию), который является Crypto api?
У меня уже есть созданный crypto api.Я использовал приведенный ниже код, чтобы добавить правило шифрования доступа к этому ключу.Но, это не удалось и вернул мне исключения «недопустимые флаги» в HasProperty / GetProperty.Пожалуйста, предложите.Обратите внимание, что это ключ Crypto api, поэтому он не содержит параметр CngProperty, но поскольку Cng api обеспечивает совместимость с обратным словом, должен быть какой-то способ извлечения ранее примененных CryptoAccessRules из CryptoApi с использованием RSACng.
NCRYPT_SECURITY_DESCR_PROPERTY="Security Descr";
DACL_SECURITY_INFORMATION=(CngPropertyOptions)4;
if (cngKey.HasProperty(NCRYPT_SECURITY_DESCR_PROPERTY, CngPropertyOptions.Persist | DACL_SECURITY_INFORMATION))
{
CngProperty prop = cngKey.GetProperty(NCRYPT_SECURITY_DESCR_PROPERTY,
DACL_SECURITY_INFORMATION);
sec.SetSecurityDescriptorBinaryForm(prop.GetValue());
}
CryptoKeyAccessRule rule =
new CryptoKeyAccessRule(new SecurityIdentifier(WellKnownSidType.LocalSystemSid, null),
CryptoKeyRights.GenericAll, AccessControlType.Allow);
sec.AddAccessRule(rule);
Ожидается: - Я хочу добавить правило доступа к ранее существующим правилам доступа по умолчанию в ключе машины.
актуально: - Получено исключение «Заданы недопустимые флаги.!».
Пожалуйста, предложите.