我尝试通过 .net 应用程序列出现有容器中的 blob,但收到 403 AuthorizationFailure 错误。
存储帐户仅限于一组公司 IP。我的计算机和帐户可以访问,并且我可以在本地运行“
az login
”和“az storage blob list --container-name <container> --account-name <account> --auth-mode login
”。但是,当我尝试使用 C# 代码列出某些容器时,收到 403 AuthorizationFailure 错误。代码是:
blobServiceClient = new BlobServiceClient(
new Uri($"https://{accountName}.blob.core.windows.net/"),
new DefaultAzureCredential());
containerClient = blobServiceClient.GetBlobContainerClient(containerName);
Console.WriteLine("Listing blobs...");
await foreach (BlobItem blob in containerClient.GetBlobsAsync())
{
Console.WriteLine("\t" + blob.Name);
}
我已登录 Visual Studio。我还尝试使用
InteractiveBrowserCredential()
打开浏览器并允许我选择我的帐户,并且我尝试在与上面的“AzureCliCredential()
”命令正常工作的同一命令实例中运行 az ... list
。
确保您已将角色
storage Blob Data Contributor
分配给您的 Azure 帐户。 https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-dotnet?tabs=visual-studio%2Cmanagement-identity%2Croles-azure-portal%2Csign-in-azure -cli%2Cidentity-visual-studio#将角色分配给您的 Azure 广告用户帐户