使用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数据库,完全没有问题。
其他人是否有此调试身份问题并能够解决?预先感谢您提供的任何启示。