为 Azure 存储帐户连接字符串构建连接字符串
Building a Connection string for a Azure Storage Account Connection String
我知道您可以使用此方法获取连接字符串:
<add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=MY_ACCOUNT_KEY" />
然后使用这个检索它:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
而且我知道如何使用 SqlConnectionStringBuilder 构建连接字符串:
System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder();
builder["DefaultEndpointsProtocol"] = "https";
builder["AccountName"] = "mystorage";
builder["AccountKey"] = "MY_ACCOUNT_KEY";
string conString = builder.ConnectionString;
但是显然这不适用于存储连接字符串。它说 SqlConnectionStringBuilder 不支持 DefaultEndpointsProtocol 或我指定的 3 个键中的任何一个。我怎样才能用这些键组成一个字符串?
不确定你为什么不使用你正在工作的第一个选项(也许你想在你的配置文件中将它们分开),但无论如何你可以将它们连接在一起以构建字符串:
var storageConnectionString = String.format("DefaultEndpointsProtocol={0};AccountName={1};AccountKey={2}", "https", "MyAccountName","MyAccountKey");
CloudStorageAccount.Parse(storageConnectionString);
回答
使用 CloudStorageAccount
constructor that takes a StorageCredentials
object. Then use the ToString(boolean)
重载获取连接字符串。
演示 Fiddle https://dotnetfiddle.net/ReWDqL
var accountName = "myAccount";
var keyValue = "c3RyaW5nIGxlbmd0aCB2YWxpZA==";
var useHttps = true;
var exportSecrets = true;
var storageCredentials = new StorageCredentials(accountName, keyValue);
var storageAccount = new CloudStorageAccount(storageCredentials, useHttps);
var connString = storageAccount.ToString(exportSecrets);
MSDN 文档
StorageCredentials Constructor (String, String)。使用指定的帐户名和键值初始化 StorageCredentials
class 的新实例。
CloudStorageAccount Constructor (StorageCredentials, Boolean)。使用指定的凭据初始化 CloudStorageAccount class 的新实例,并指定是使用 HTTP 还是 HTTPS 连接到存储服务。
CloudStorageAccount.ToString Method (Boolean)。 Returns 存储帐户的连接字符串,可选择包含敏感数据。
我知道您可以使用此方法获取连接字符串:
<add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=MY_ACCOUNT_KEY" />
然后使用这个检索它:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
而且我知道如何使用 SqlConnectionStringBuilder 构建连接字符串:
System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder();
builder["DefaultEndpointsProtocol"] = "https";
builder["AccountName"] = "mystorage";
builder["AccountKey"] = "MY_ACCOUNT_KEY";
string conString = builder.ConnectionString;
但是显然这不适用于存储连接字符串。它说 SqlConnectionStringBuilder 不支持 DefaultEndpointsProtocol 或我指定的 3 个键中的任何一个。我怎样才能用这些键组成一个字符串?
不确定你为什么不使用你正在工作的第一个选项(也许你想在你的配置文件中将它们分开),但无论如何你可以将它们连接在一起以构建字符串:
var storageConnectionString = String.format("DefaultEndpointsProtocol={0};AccountName={1};AccountKey={2}", "https", "MyAccountName","MyAccountKey");
CloudStorageAccount.Parse(storageConnectionString);
回答
使用 CloudStorageAccount
constructor that takes a StorageCredentials
object. Then use the ToString(boolean)
重载获取连接字符串。
演示 Fiddle https://dotnetfiddle.net/ReWDqL
var accountName = "myAccount";
var keyValue = "c3RyaW5nIGxlbmd0aCB2YWxpZA==";
var useHttps = true;
var exportSecrets = true;
var storageCredentials = new StorageCredentials(accountName, keyValue);
var storageAccount = new CloudStorageAccount(storageCredentials, useHttps);
var connString = storageAccount.ToString(exportSecrets);
MSDN 文档
StorageCredentials Constructor (String, String)。使用指定的帐户名和键值初始化 StorageCredentials
class 的新实例。
CloudStorageAccount Constructor (StorageCredentials, Boolean)。使用指定的凭据初始化 CloudStorageAccount class 的新实例,并指定是使用 HTTP 还是 HTTPS 连接到存储服务。
CloudStorageAccount.ToString Method (Boolean)。 Returns 存储帐户的连接字符串,可选择包含敏感数据。