【问题标题】:C# Generate Azure Table Storage ConnectionStringC# 生成 Azure 表存储连接字符串
【发布时间】:2018-11-05 22:29:54
【问题描述】:

我想使用 azure subscriptionId 和 azureApiKey 为 azure 表存储生成 connectionString。

我找到了以下 Microsoft 库:https://github.com/Azure/azure-libraries-for-net/tree/master 但不明白如何在这里生成 connectionString 。我什至找不到合适的方法。

我需要额外的数据来生成 ConnectionString 吗?

【问题讨论】:

    标签: c# .net azure connection-string azure-storage


    【解决方案1】:

    我需要额外的数据来生成 ConnectionString 吗?

    准备工作:

    1.在 Azure AD 中注册应用并创建服务主体以访问资源。更多详情请参考document

    2.准备认证文件,内容如下。这些值可以从第 1 步得到。

    subscription=########-####-####-####-############
    client=########-####-####-####-############
    key=XXXXXXXXXXXXXXXX
    tenant=########-####-####-####-############
    managementURI=https\://management.core.windows.net/
    baseURL=https\://management.azure.com/
    authURL=https\://login.windows.net/
    graphURL=https\://graph.windows.net/
    

    3.在项目中安装库Microsoft.Azure.Management.FluentMicrosoft.Azure.Management.ResourceManager.Fluent

    演示代码:

    var credFile = @"auth file path"; // example: c:\tom\auth.txt
    var keyName = "key1";
    var azure = Azure
                .Configure()
                .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
                .Authenticate(credentials)
                .WithDefaultSubscription(); 
    var storageAccount = azure.StorageAccounts.GetByResourceGroup(resourceGroupName, storageName);
    var key = storageAccount.RegenerateKey(keyName);
    var connectionString = $"DefaultEndpointsProtocol=http;AccountName={storageAccount.Name};AccountKey={key.FirstOrDefault()?.Value}";        
    

    测试结果:

    【讨论】:

    • 非常感谢,我现在试试
    • 感谢 Tom 提供的简短而出色的信息。但我需要在运行时创建 StorageAccount。你能提供这个样本吗?
    • var accounts = azure.StorageAccounts.Define("storageName").WithRegion("region").WithExistingResourceGroup("resourcegroupname").Create();
    【解决方案2】:

    你真的不需要生成它,你可以进入 azure 门户并创建一个存储帐户并复制连接字符串:

    但是,如果你想生成它,你可以用你的帐户名和密钥填充这个字符串: "DefaultEndpointsProtocol=https;AccountName={yourAccountName};AccountKey={yourAccountKey};EndpointSuffix=core.windows.net"

    如果您想使用 .net 库,可以在此处找到示例: https://github.com/Azure-Samples/storage-dotnet-manage-storage-accounts

    【讨论】:

    • 好的,但我需要在运行时仅使用 AzureSubscriptionId 和 AzureApiKey 生成 connectionString 并将其保存在另一个集合中。有什么办法解决这个问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    • 2018-12-20
    • 1970-01-01
    • 2011-08-11
    • 2023-03-10
    • 2021-08-24
    • 1970-01-01
    相关资源
    最近更新 更多