我不太确定如何在本地测试它,因为我对使用托管身份的理解是我的代码需要作为 azure 资源发布并在该身份下运行以访问另一个已授予某些权限的 azure 资源到那个身份。
就我而言,我想测试我的 Web 应用程序在使用托管身份运行时是否可以创建存储访问策略,然后根据该策略生成 SAS。代码基础来自this article 。然而,正如该文章所述:
The underlying REST operation to create a stored access policy is Set Container ACL. You must authorize the operation to create a stored access policy via Shared Key by using the account access keys in a connection string.
因此,首先,如果我使用对存储帐户具有完全权限的托管身份在 Azure 中运行 Web 应用程序,它是否能够创建访问策略?其次,如何在本地测试这个,而不必将我的网络应用程序推送到 azure ?有没有办法使用 Azurite 进行测试?
最佳答案
您可以通过将以下内容添加到 VS 或 VS Code 中的启动文件来在本地进行测试,无论您的应用是否能够创建访问策略,都取决于您授予托管身份的访问权限,但可以肯定的是,您是否拥有给它正确的访问权限,那么它就可以做到这一点。
var credentials = GetDefaultAzureCredential();
private static DefaultAzureCredential GetDefaultAzureCredential() => new(new DefaultAzureCredentialOptions
{
ExcludeManagedIdentityCredential = false,
ExcludeInteractiveBrowserCredential = false,
ExcludeVisualStudioCodeCredential = false,
ExcludeEnvironmentCredential = true,
ExcludeAzureCliCredential = true,
ExcludeSharedTokenCacheCredential = true,
ExcludeVisualStudioCredential = true,
VisualStudioCodeTenantId = Environment.GetEnvironmentVariable("TenantId"),
InteractiveBrowserTenantId = Environment.GetEnvironmentVariable("TenantId")
});
关于c# - 如果作为托管身份运行,您可以创建/删除/更新存储的访问策略吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72169462/