/// <summary> /// </summary> /// <param name="uri">The service Uri to load service metadata from.</param> /// <param name="httpCredentialsProvider"></param> /// <param name="clientCertificatesProvider"></param> /// <param name="serverCertificateValidationProvider"></param> public MetadataDocumentLoader(string uri, IHttpCredentialsProvider httpCredentialsProvider, IClientCertificateProvider clientCertificatesProvider, IServerCertificateValidationProvider serverCertificateValidationProvider) { _httpCredentialsProvider = httpCredentialsProvider; _clientCertificatesProvider = clientCertificatesProvider; _serverCertificateValidationProvider = serverCertificateValidationProvider; if (string.IsNullOrEmpty(uri)) { throw new ArgumentNullException(nameof(uri)); } if (!CanLoad(uri, string.Empty, Directory.GetCurrentDirectory(), out Uri metadataUri)) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, MetadataResources.ErrInvalidUriFormat, uri)); } if (metadataUri.IsFile) { // the input could be a reference to a list of files specified with wildcards, let's check. var fileInfoList = MetadataFileNameManager.ResolveFiles(metadataUri.LocalPath); // when only the wsdl file is specified, we need to resolve any schema references. _resolveExternalDocs = fileInfoList.Length == 1; this.metadataSourceFiles.AddRange(fileInfoList.Select(fi => new Uri(fi.FullName, UriKind.Absolute))); } else { _resolveExternalDocs = true; this.MetadataSourceUrl = metadataUri; } }
/// <summary> /// </summary> /// <param name="metadataFiles">A collection containing the location of wsdl/schema documents to load service metadata from.</param> /// <param name="resolveExternalDocuments">if true, WSDL imports and XmlSchema Includes will be attempted to be resolved.</param> /// <param name="httpCredentialsProvider"></param> /// <param name="clientCertificatesProvider"></param> /// <param name="serverCertificateValidationProvider"></param> public MetadataDocumentLoader(IEnumerable <string> metadataFiles, bool resolveExternalDocuments, IHttpCredentialsProvider httpCredentialsProvider, IClientCertificateProvider clientCertificatesProvider, IServerCertificateValidationProvider serverCertificateValidationProvider) { _httpCredentialsProvider = httpCredentialsProvider; _clientCertificatesProvider = clientCertificatesProvider; _serverCertificateValidationProvider = serverCertificateValidationProvider; if (metadataFiles == null) { throw new ArgumentNullException(nameof(metadataFiles)); } foreach (var uri in metadataFiles) { if (!CanLoad(uri, string.Empty, Directory.GetCurrentDirectory(), out Uri metadataUri)) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, MetadataResources.ErrInvalidUriFormat, uri)); } if (!metadataUri.IsFile) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, MetadataResources.ErrUrlNotAllowedOnMultipleInputsFormat, metadataUri)); } var fileInfoList = MetadataFileNameManager.ResolveFiles(metadataUri.LocalPath); this.metadataSourceFiles.AddRange(fileInfoList.Select(fi => new Uri(fi.FullName, UriKind.Absolute))); } _resolveExternalDocs = resolveExternalDocuments; }
public ServiceDescriptorFactory( IHttpCredentialsProvider userCredentialsProvider, IClientCertificateProvider clientCertificateProvider, IServerCertificateValidationProvider serverCertificateValidationProvider) { _userCredentialsProvider = userCredentialsProvider; _clientCertificateProvider = clientCertificateProvider; _serverCertificateValidationProvider = serverCertificateValidationProvider; }
/// <summary> /// 添加一个消息处理器,通过此消息处理器会在请求过程中,自动从认证服务获取令牌并添加到请求头中 /// 该处理器通过<seealso cref="IClientCertificateProvider"/>获取对应客户端的认证令牌 /// </summary> /// <param name="builder">HttpClient构建器</param> /// <param name="clientId">认证客户端Id</param> /// <returns></returns> public static IHttpClientBuilder AddTokenMessageHandler(this IHttpClientBuilder builder, string clientId) { builder.AddHttpMessageHandler((sp) => { IClientCertificateProvider provider = sp.GetRequiredService <IClientCertificateProvider>(); ClientCertificateManager cm = provider.GetClientCertificateManager(clientId); return(new GetClientTokenMessageHandler(cm)); }); return(builder); }
internal ServiceDescriptor( List <string> metadataFiles, IHttpCredentialsProvider userCredentialsProvider, IClientCertificateProvider clientCertificateProvider, IServerCertificateValidationProvider serverCertificateValidationProvider) { if (metadataFiles == null) { throw new ArgumentException(nameof(metadataFiles)); } this.metadataDocumentLoader = new MetadataDocumentLoader(metadataFiles, false, userCredentialsProvider, clientCertificateProvider, serverCertificateValidationProvider); }
internal ServiceDescriptor( string serviceUri, IHttpCredentialsProvider userCredentialsProvider, IClientCertificateProvider clientCertificateProvider, IServerCertificateValidationProvider serverCertificateValidationProvider) { if (string.IsNullOrWhiteSpace(serviceUri)) { throw new ArgumentException(nameof(serviceUri)); } this.metadataDocumentLoader = new MetadataDocumentLoader(serviceUri, userCredentialsProvider, clientCertificateProvider, serverCertificateValidationProvider); }
public static MetadataExchangeResolver Create( EndpointAddress endpointAddress, IHttpCredentialsProvider userCredentialsProvider, IClientCertificateProvider clientCertificatesProvider, IServerCertificateValidationProvider serverCertificateValidationProvider) { if (endpointAddress == null) { throw new ArgumentNullException(nameof(endpointAddress)); } MetadataExchangeResolver resolver = CreateMetadataExchangeClient(endpointAddress); resolver.EndpointAddress = endpointAddress; resolver.HttpCredentialsProvider = userCredentialsProvider; resolver.ClientCertificatesProvider = clientCertificatesProvider; resolver.ServerCertificateValidationProvider = serverCertificateValidationProvider; resolver.OperationTimeout = TimeSpan.MaxValue; resolver.ResolveMetadataReferences = true; resolver.MaximumResolvedReferences = MaximumResolvedReferencesDefault; resolver.HttpCredentials = System.Net.CredentialCache.DefaultCredentials; return(resolver); }
protected virtual MetadataDocumentLoader CreateMetadataDocumentLoader(IEnumerable <string> metadataFiles, bool resolveExternalDocuments, IHttpCredentialsProvider httpCredentialsProvider, IClientCertificateProvider clientCertificatesProvider, IServerCertificateValidationProvider serverCertificateValidationProvider) { return(new MetadataDocumentLoader(metadataFiles, resolveExternalDocuments, httpCredentialsProvider, clientCertificatesProvider, serverCertificateValidationProvider)); }
protected virtual MetadataDocumentLoader CreateMetadataDocumentLoader(string uri, IHttpCredentialsProvider httpCredentialsProvider, IClientCertificateProvider clientCertificatesProvider, IServerCertificateValidationProvider serverCertificateValidationProvider) { return(new MetadataDocumentLoader(uri, httpCredentialsProvider, clientCertificatesProvider, serverCertificateValidationProvider)); }
protected HttpClientBase(IWorkerConfiguration workerConfig) { this.WorkerConfig = workerConfig; this.ClientCertificateProvider = new X509StoreCertificateProvider(X509FindType.FindBySubjectName, workerConfig.ClientCertificate, false, StoreName.My, StoreLocation.LocalMachine); }
public SmartCacheHttpClientBuilder(IClientCertificateProvider clientCertificateProvider, IHttpClientFactory httpClientFactory) { this.clientCertificateProvider = clientCertificateProvider; this.httpClientFactory = httpClientFactory; }
public AccessTokenManager(string appId, IClientCertificateProvider tokenProvider) { _appId = appId; _tokenProvider = tokenProvider; }