ใบรับรองกุญแจส่วนตัวสิทธิ์ที่อนุญาตอยู่อข่ายนอก 6 คน

0

คำถาม

ฉันพยายามที่จะใช้นำเข้าใบรับรองกับกุญแจส่วนตัวเข้าไปในหน้าต่างที่ออกใบรับรองร้าน ฉันสามารถเรียบร้อยแล้นำเข้าใบรับรองใช้ด้านล่างนี้

X509Certificate2 certificate = new(certByteArray, certPassword, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet);
X509Store store = new(StoreName.TrustedPeople, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
store.Add(certificate);

แต่ปัญหาผมมีคือวิธีที่จะทำให้ผู้ใช้งานการกุญแจส่วนตัว programmatically.
ฉันเจอนี่ที่อยู่เชื่อมโยงช่วย:
https://www.pkisolutions.com/accessing-and-using-certificate-private-keys-in-net-framework-net-core/
CngKey กำหนดขออนุญาตเครื่องกุญแจ

ตั้งค่าใบรับรอง PrivateKey สิทธิ์ที่อนุญาตอยู่อข่ายนอก 5

ผมสามารถให้ในสิ่งที่ใช้งานผ่านทางคนส่วนติดต่อผู้ใช้กับ certlm.msc>ลากออกใบรับรองที่ส่วนตัวของร้าน>ยการคลิกเมาส์ปุ่มขวางใบรับรอง>งทุกทาสก์>จัดการกุญแจส่วนตัว>เพิ่มผู้ใช้และออนุญาต
แต่ฉันจำเป็นต้องทำอย่างนี้ programmatically

มีการเปลี่ยนอกจาก.อข่ายนอนเต็มเฟรมเวิร์กซึ่งเป็นที่ที่คนตัวอย่างจากมา ฉันใช้เวลามากกว่าที่เป็นอวันก่อนที่มันพยายามหลายใบรับรองอิเล็กทรอนิกส์,ออกใบรับรองเป็นอย่างแน่นทำเครื่องหมายที่ exportable และวิ่งหนีกับที่ผู้ดูแลระบบ. ฉันมีความสุขกับหน้าต่างเดียวที่แก้ปัญหา

นี่เป็นเรื่องใกล้ที่สุดเท่าที่ฉันมี

const string NCRYPT_SECURITY_DESCR_PROPERTY = "Security Descr";
const CngPropertyOptions DACL_SECURITY_INFORMATION = (CngPropertyOptions)4;

X509Store trustedPeopleStore = new(StoreName.TrustedPeople, StoreLocation.LocalMachine);
trustedPeopleStore.Open(OpenFlags.ReadWrite);

var certificates = trustedPeopleStore.Certificates.Find(X509FindType.FindByThumbprint, "xxxxxxxxxxxxxxxxxxxxxx", false);

RSA rsa = certificates[0].GetRSAPrivateKey();
RSACng rsaCng = rsa as RSACng;

CngProperty prop = rsaCng.Key.GetProperty(NCRYPT_SECURITY_DESCR_PROPERTY, DACL_SECURITY_INFORMATION);

ฉันสามารถเห็น rsaCng.กุญแจของขวัญในการดีบั๊ก,แต่มันล้มเหลวในบรรทัดถัดไป(แน่นอน\\\มันคือ exportable)ได้ทรัพย์สินกับ Internal.Cryptography.CryptoThrowHelper.WindowsCryptographicException: 'Key not valid for use in specified state.' ฉันยังอ่านหมายเหตุนั้นคุณไม่ควรลองตั้งค่าที่เข่าโดยตรงแฟ้มแต่ไม่แน่ใจว่านั่นคือคำตอบที่ถูกต้องหรือไม่

.net acl c# cng
2021-11-24 00:59:41
1

คำตอบที่ดีที่สุด

0

เห็น มันรหัสโครงการโพสต์ สำหรับบางตัวอย่างเช่นรหัสนั่น grants เข้า programmatically(โดยเฉพาะดู"AddAccessToCertificate"วิธีการ).

ดูนี่สำหรับข้อมูลเพิ่มเติม: Programmatically การเพิ่มใบรับรองที่ร้านขายส่วนตัว

2021-12-02 16:48:54

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................