/// <summary> /// Конструктор /// </summary> /// <param name="uri"> /// URL конечной точки службы WSL /// </param> /// <param name="vcert"> /// Криптопровайдер /// </param> /// <param name="clientCertificate"> /// Клиентский сертификат. Используется только в случае, если используется протокол HTTPS /// </param> public NativeHttpsWorker(Uri uri, IVcertAPI vcert, X509Certificate2 clientCertificate) { if (uri == null) throw new ArgumentNullException("uri"); if (vcert == null) throw new ArgumentNullException("vcert"); if (clientCertificate == null) throw new ArgumentNullException("clientCertificate"); this.uri = uri; this.vcert = vcert; httpsClient = new WinInetHttpsClient(uri, clientCertificate); }
/// <summary> /// Конструктор /// </summary> /// <param name="uri"> /// URL конечной точки службы WSL /// </param> /// <param name="vcert"> /// Криптопровайдер /// </param> /// <param name="clientCertificate"> /// Клиентский сертификат. Используется только в случае, если используется протокол HTTPS /// </param> public WslAdapter(Uri uri, IVcertAPI vcert, X509Certificate2 clientCertificate = null) { if (uri == null) throw new ArgumentNullException("uri"); if (vcert == null) throw new ArgumentNullException("vcert"); // При подключении через HTTP клиентский сертификат не используется if (uri.Scheme == Uri.UriSchemeHttps && clientCertificate == null) throw new ArgumentNullException("clientCertificate"); this.uri = uri; worker = (uri.Scheme == Uri.UriSchemeHttps) ? (IHttpWorker)new NativeHttpsWorker(uri, vcert, clientCertificate) : new ManagedHttpWorker(uri, vcert, clientCertificate); }
/// <summary> /// Конструктор /// </summary> /// <param name="uri"> /// URL конечной точки службы WSL /// </param> /// <param name="vcert"> /// Криптопровайдер /// </param> /// <param name="clientCertificate"> /// Клиентский сертификат. Используется только в случае, если используется протокол HTTPS /// </param> public NativeHttpsWorker(Uri uri, IVcertAPI vcert, X509Certificate2 clientCertificate) { if (uri == null) { throw new ArgumentNullException("uri"); } if (vcert == null) { throw new ArgumentNullException("vcert"); } if (clientCertificate == null) { throw new ArgumentNullException("clientCertificate"); } this.uri = uri; this.vcert = vcert; httpsClient = new WinInetHttpsClient(uri, clientCertificate); }
/// <summary> /// Конструктор /// </summary> /// <param name="uri"> /// URL конечной точки службы WSL /// </param> /// <param name="vcert"> /// Криптопровайдер /// </param> /// <param name="clientCertificate"> /// Клиентский сертификат. Используется только в случае, если используется протокол HTTPS /// </param> public ManagedHttpWorker(Uri uri, IVcertAPI vcert, X509Certificate2 clientCertificate) { this.uri = uri; this.clientCertificate = clientCertificate; this.vcert = vcert; }
/// <summary> /// Инициализировать адаптер службы WSL /// </summary> /// <param name="endpoint"> /// Контур службы (PL или PROD) /// </param> /// <param name="vcert"> /// Криптопровайдер /// </param> /// <param name="certificate"> /// Клиентский сертификат /// </param> /// <returns> /// Адаптер службы WSL /// </returns> private WslAdapter CreateAdapter(WslEndpoint endpoint, IVcertAPI vcert, X509Certificate2 certificate) { Console.WriteLine("Инициализация адаптера службы"); var uri = ResolveWslUri(endpoint); var adapter = new WslAdapter(uri, vcert, certificate); return adapter; }