【发布时间】:2019-12-20 12:39:10
【问题描述】:
使用 VS2019,我使用工具/选项/Azure 服务身份验证/帐户选择指定了一个临时“开发人员帐户”,以便我的应用程序“在从 Visual Studio 调试时验证和访问 Azure 资源”。开发人员帐户有权访问 Azure SQL 数据库。当我调试时,我的应用会得到一个令牌,如下所示:
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder["Data Source"] = serverName;
builder["Initial Catalog"] = dbName;
builder["Persist Security Info"] = "False";
builder["MultipleActiveResultSets"] = "False";
builder["Encrypt"] = "True";
builder["TrustServerCertificate"] = "False";
builder["Connect Timeout"] = 15;
var cancellationToken = new CancellationToken();
var conn = new SqlConnection(builder.ConnectionString);
conn.AccessToken = new AzureServiceTokenProvider().GetAccessTokenAsync("https://database.windows.net/").GetAwaiter().GetResult();
return conn.AccessToken;
但是,当我检查返回的令牌时,它不是我指定的开发人员帐户身份的令牌,而是我用来运行 Visual Studio 的正常身份的令牌。一位同事已经能够在 VS2019 中使用与我的开发人员帐户位于同一 Azure AD 组中的开发人员帐户执行此操作。但是由于某些本地环境原因,这对我不起作用。请注意,在 SQL Server Management Studio 中,我可以毫无问题地使用我的开发人员帐户访问 SQL Azure 数据库。
有没有其他人遇到过这个调试身份问题并且能够解决它?提前感谢您对此提供的任何启发。
【问题讨论】:
标签: azure azure-active-directory azure-sql-database visual-studio-2019