سؤال: چگونه میتوان این مجوزها را با کدنویسی دریافت یا تعیین اعتبار کرد؟
قطعه کد زیر، نحوه دریافت مجوز SSL یک سایت را نمایش میدهد:
using System; using System.Diagnostics; using System.IO; using System.Net; using System.Security.Cryptography.X509Certificates; namespace DownloadCerts { class Program { static void Main(string[] args) { // صرفنظر از خطاهای احتمالی مجوز ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; var url = "https://pdfreport.codeplex.com"; var request = WebRequest.Create(url) as HttpWebRequest; request.Method = WebRequestMethods.Http.Head; using (var response = request.GetResponse()) { /* در اینجا مجوز، در صورت وجود دریافت شده */ } if (request.ServicePoint.Certificate == null) return; // ذخیره سازی مجوز در فایل var cert = new X509Certificate2(request.ServicePoint.Certificate); Console.WriteLine("Expiration Date: {0}", cert.GetExpirationDateString()); var data = cert.Export(X509ContentType.Cert); File.WriteAllBytes("site.cer", data); Process.Start(Environment.CurrentDirectory); } } }
سپس یک درخواست ساده را به آدرس سرور مورد نظر ارسال میکنیم. پس از پایان درخواست، خاصیت request.ServicePoint.Certificate با مجوز SSL یک سایت مقدار دهی شده است. در ادامه نحوه ذخیره سازی این مجوز را با فرمت cer مشاهده میکنید.