为Azure存储帐户连接字符串构建连接字符串

时间:2015-09-06 16:13:23

标签: asp.net web-services azure web-applications azure-storage

我知道您可以使用以下方法获取Connection字符串:

 <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个键中的任何一个。如何用这些键创建一个字符串?

2 个答案:

答案 0 :(得分:5)

答案

使用带有CloudStorageAccount constructor对象的StorageCredentials。然后使用ToString(boolean)重载来获取连接字符串。

使用小提琴演示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类的新实例。

CloudStorageAccount Constructor (StorageCredentials, Boolean)。使用指定的凭据初始化CloudStorageAccount类的新实例,并指定是使用HTTP还是HTTPS连接到存储服务。

CloudStorageAccount.ToString Method (Boolean)。返回存储帐户的连接字符串,可选地包含敏感数据。

答案 1 :(得分:3)

不确定为什么不使用你工作的第一个选项(也许你想在配置文件中将它们分开),但无论如何你可以将它们连接起来构建字符串:< / p>

var storageConnectionString = String.format("DefaultEndpointsProtocol={0};AccountName={1};AccountKey={2}", "https", "MyAccountName","MyAccountKey");

CloudStorageAccount.Parse(storageConnectionString);