بالمقارنة مع المصادقة الأساسية (الأساسية)، أو مصادقة ملخص خادم المجال، أو مصادقة Windows المتكاملة أو مصادقة النماذج المخصصة، تعد الشهادات الرقمية للعميل أكثر تعقيدًا قليلاً من حيث النشر والإدارة، ولكنها أيضًا أكثر أمانًا في التطبيق.
من السهل جدًا معالجة الشهادات الرقمية للعميل وتحديدها في ASP وASP.NET، ويكون الرمز كما يلي:
بناء جملة ASP (VBScript):
موضوع خافت
subject=Request.ServerVariables("CERT_SUBJECT")
أو
subject=Request.ClientCertifate("Subject") '--ينطبق على الموضوع بدون الشهادة الصينية
ASP.NET (C#) بناء الجملة:
سلسلة الموضوع؛
HttpClientCertificate hcc = Request.ClientCertificate;
if(hcc.IsValid) = hcc.Subject;
سلسلة الموضوع التي تم الحصول عليها هي قائمة مفصولة بفواصل من الحقول الفرعية. على سبيل المثال، C=CN,O=BOC,CN=moslem، ثم قم بفصل السلاسل وأخذ قيمة CN الأخيرة (قد تكون أكثر من CN واحد). هذه القيمة هي الاسم الشائع للمستخدم، وهو "الاسم العادي". عادة اسم المستخدم أو المعرف.
بعد الحصول على CN في الشهادة الرقمية، يمكنك إجراء المزيد من المعالجة، مثل تفويض المستخدم. أعتقد أن الطريقة الأكثر فعالية هي تمكين الشهادات الرقمية ومصادقة النموذج في نفس الوقت على العميل ويمكن تحقيق المصادقة متعددة العوامل من خلال مقارنة قيم اسم المستخدم الذي تم إدخاله في CN والنموذج لمعرفة ما إذا كانت متطابقة. .
نسبيًا، يوفر ASP.NET فئة HttpClientCertificate مخصصة للتعامل مع الشهادات الرقمية للعميل، لذلك يكون التعامل معها أكثر ملاءمة في البرنامج.