سؤال

وأنا في محاولة لمعرفة ما إذا كان هناك أي طريقة لجعل عميل .NET استخدام شهادة عميل دون إشراك مخزن مفاتيح ويندوز بأي شكل من الأشكال.

ولدي التعليمات البرمجية المتكررة مثل هذا:

test1.Service s = new test1.Service();
X509Certificate c = X509Certificate.CreateFromCertFile(@"C:\test.pem");
s.ClientCertificates.Add(c);
int result = s.TestMethod();

ولكن، هذا يعمل فقط إذا كان لدي أيضا شهادة المشار إليها في "test.pem" المثبتة في مخزن شهادتي. أفترض ذلك لأن مفتاح ضروري للتفاوض. لو لم يكن لديك سيرت / المفتاح في المتجر، لا يتم إرسال سيرت مع الطلب.

ما أريد القيام به هو أن تكون قادرة على تقديم كل من الشهادة والمفتاح الخاص من ملف أو ملفات ولا تنطوي على مخزن الشهادات ويندوز بأي شكل من الأشكال.

هل هناك أي طريقة للقيام بذلك؟

هل كانت مفيدة؟

المحلول

وانا ذاهب الى نشر إجابة لبلدي وظيفة، ولكن تترك المجال مفتوحا لمعرفة ما إذا كان يمكن للآخرين حلها مختلفة.

والأساس، وأنا بونت. إذا كان لديك ملف PKCS12 (مع كل مفتاح وسيرت فيه) يمكنك استخدام فئة X509Certificate2 لتحميل هذا الملف واستخدامه، وأنه لن استجواب تخزين المفاتيح.

وأنا لا يمكن أن تجد طريقة للقيام بذلك مع شقة ملفات المفتاح وسيرت PEM (مثل ما كنت في حاجة مع بيثون، على سبيل المثال).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top