/// <summary> /// Initializes a new instance of the <see cref="TableServiceClient"/> using the specified connection string. /// </summary> /// <param name="connectionString"> /// A connection string includes the authentication information /// required for your application to access data in an Azure Storage /// account at runtime. /// /// For more information, /// <see href="https://docs.microsoft.com/azure/storage/common/storage-configure-connection-string"> /// Configure Azure Storage connection strings</see>. /// </param> /// <param name="options"> /// Optional client options that define the transport pipeline policies for authentication, retries, etc., that are applied to every request. /// </param> public TableServiceClient(string connectionString, TableClientOptions options = null) { Argument.AssertNotNull(connectionString, nameof(connectionString)); TableConnectionString connString = TableConnectionString.Parse(connectionString); _accountName = connString._accountName; options ??= new TableClientOptions(); var endpointString = connString.TableStorageUri.PrimaryUri.AbsoluteUri; var secondaryEndpoint = connString.TableStorageUri.SecondaryUri?.AbsoluteUri; _isCosmosEndpoint = TableServiceClient.IsPremiumEndpoint(connString.TableStorageUri.PrimaryUri); var perCallPolicies = _isCosmosEndpoint ? new[] { new CosmosPatchTransformPolicy() } : Array.Empty <HttpPipelinePolicy>(); TableSharedKeyPipelinePolicy policy = connString.Credentials switch { TableSharedKeyCredential credential => new TableSharedKeyPipelinePolicy(credential), _ => default }; HttpPipeline pipeline = HttpPipelineBuilder.Build(options, perCallPolicies: perCallPolicies, perRetryPolicies: new[] { policy }, new ResponseClassifier()); _version = options.VersionString; _diagnostics = new ClientDiagnostics(options); _tableOperations = new TableRestClient(_diagnostics, pipeline, endpointString, _version); _serviceOperations = new ServiceRestClient(_diagnostics, pipeline, endpointString, _version); _secondaryServiceOperations = new ServiceRestClient(_diagnostics, pipeline, secondaryEndpoint, _version); }
/// <summary> /// Initializes a new instance of the <see cref="TableServiceClient"/> using the specified connection string. /// </summary> /// <param name="connectionString"> /// A connection string includes the authentication information /// required for your application to access data in an Azure Storage /// account at runtime. /// /// For more information, /// <see href="https://docs.microsoft.com/azure/storage/common/storage-configure-connection-string"> /// Configure Azure Storage connection strings</see>. /// </param> /// <param name="options"> /// Optional client options that define the transport pipeline policies for authentication, retries, etc., that are applied to every request. /// </param> public TableServiceClient(string connectionString, TableClientOptions options = null) { Argument.AssertNotNull(connectionString, nameof(connectionString)); TableConnectionString connString = TableConnectionString.Parse(connectionString); options ??= new TableClientOptions(); var endpointString = connString.TableStorageUri.PrimaryUri.AbsoluteUri; var secondaryEndpoint = connString.TableStorageUri.SecondaryUri?.AbsoluteUri; TableSharedKeyPipelinePolicy policy = connString.Credentials switch { TableSharedKeyCredential credential => new TableSharedKeyPipelinePolicy(credential), _ => default }; HttpPipeline pipeline = HttpPipelineBuilder.Build(options, policy); _version = options.VersionString; _diagnostics = new ClientDiagnostics(options); _tableOperations = new TableRestClient(_diagnostics, pipeline, endpointString, _version); _serviceOperations = new ServiceRestClient(_diagnostics, pipeline, endpointString, _version); _secondaryServiceOperations = new ServiceRestClient(_diagnostics, pipeline, secondaryEndpoint, _version); _isPremiumEndpoint = IsPremiumEndpoint(connString.TableStorageUri.PrimaryUri); }
/// <summary> /// Initializes a new instance of the <see cref="TableServiceClient"/> using the specified table service <see cref="Uri" /> and <see cref="TableSharedKeyCredential" />. /// </summary> /// <param name="endpoint"> /// A <see cref="Uri"/> referencing the table service account. /// This is likely to be similar to "https://{account_name}.table.core.windows.net/" or "https://{account_name}.table.cosmos.azure.com/". /// </param> /// <param name="credential">The shared key credential used to sign requests.</param> /// <param name="options"> /// Optional client options that define the transport pipeline policies for authentication, retries, etc., that are applied to every request. /// </param> public TableServiceClient(Uri endpoint, TableSharedKeyCredential credential, TableClientOptions options = null) : this(endpoint, new TableSharedKeyPipelinePolicy(credential), default, options) { Argument.AssertNotNull(credential, nameof(credential)); }
/// <summary> /// Create a new SharedKeyPipelinePolicy /// </summary> /// <param name="credentials">SharedKeyCredentials to authenticate requests.</param> public TableSharedKeyPipelinePolicy(TableSharedKeyCredential credentials) => _credentials = credentials;
public static string GetSas(TableSharedKeyCredential credential, string message) { return(ComputeSasSignature(credential, message)); }