Azure .Net SDK - 允许CloudStorageAccount的{set;}的方法签名

时间:2016-04-13 21:16:45

标签: c# .net azure azure-sdk-.net

我正在查看是否有人知道任何方法签名或方法重载,这将允许我删除我的预先存在的凭证编码值, config.StorageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));

允许控制台应用程序提示用户输入Username和AccessToken,然后可以将其传递回`CloudStorageAccount。

3 个答案:

答案 0 :(得分:1)

如果您获取用户的输入并构建连接字符串,则

CloudStorageAccount.Parse 应该有效。

static void Main(string[] args)
        {
            var connectionString = $"DefaultEndpointsProtocol=https;AccountName={args[0]};AccountKey={args[1]}";
            var storageAccount = CloudStorageAccount.Parse(connectionString);

答案 1 :(得分:1)

正如在项目设置中所说,可以通过编程方式访问配置设置并动态更新。

enter image description here

您只需要声明一个包含默认端点协议,存储帐户名称和存储访问密钥的字符串变量,然后使用CloudStorageAccount.Parse创建CloudStorageAccount,就像@Stephen一样麦克道尔的代码。

答案 2 :(得分:1)

谢谢Stephen。我使用了你的逻辑并改变它以适应我的需要。我已将我的代码包含在下面,再次感谢您!

<强> UserUI()

 public static List<string> UserUI()
    {
        List<string> accessCredentials = new List<string>();

        Console.WriteLine("Account Name: ");
        string accountName = Console.ReadLine();
        accessCredentials.Add(accountName);

        Console.WriteLine("Account Key: ");
        string accountKey = Console.ReadLine();
        accessCredentials.Add(accountKey);


        return accessCredentials;
    }

<强> ApplicationStartFromUserOptions()

   public static string ApplicatonStartFromUserOptions(List<string> accessCredentials)
    {
        var connectionString = $"DefaultEndpointsProtocol=https;AccountName={accessCredentials[0]};AccountKey={accessCredentials[1]}";

        return connectionString;
    }

然后我从connectionString获取ApplicationStartFromUserOptions()并将其传递到处理大部分繁重工作的GetConfig()

<强> GetConfig()

 public static StartConfig GetConfig(string connectionString)
    {
        var config = new StartConfig();

        // Retrieve storage account from connection string.
        config.StorageAccount = CloudStorageAccount.Parse(connectionString);

        // Create the blob object.
        config.BlobClient = config.StorageAccount.CreateCloudBlobClient();

        config.ListContainerData = ListContainer(config);

        foreach (var item in config.ListContainerData.Item2)
        {
            config.Container = config.BlobClient.GetContainerReference(item);
            ShowSasTokenForContainer(config);

        }

        //Create the container if it does not exisit.
        config.Container.CreateIfNotExists();

        return config;
    }

最后,我使用Main()

在我的控制台应用程序中的StartConfig config = GetConfig(ApplicatonStartFromUserOptions(UserUI()));内调用此内容