Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从AAD登录获取令牌_C#_Sql_Azure_Azure Active Directory_Token - Fatal编程技术网

C# 从AAD登录获取令牌

C# 从AAD登录获取令牌,c#,sql,azure,azure-active-directory,token,C#,Sql,Azure,Azure Active Directory,Token,是否可以通过AAD进行身份验证,使用该令牌并使用它通过Azure SQL Server进行身份验证?是的,确实可以。如果您使用托管标识,例如在Azure函数中,这看起来很简单,如下所示: using Microsoft.Azure.Services.AppAuthentication; var connection = new SqlConnection("Server=tcp:yourdbserver.database.windows.net,1433;Initial Catalog=myd

是否可以通过AAD进行身份验证,使用该令牌并使用它通过Azure SQL Server进行身份验证?

是的,确实可以。如果您使用托管标识,例如在Azure函数中,这看起来很简单,如下所示:

using Microsoft.Azure.Services.AppAuthentication;

var connection = new SqlConnection("Server=tcp:yourdbserver.database.windows.net,1433;Initial Catalog=mydatabase;")
connection.AccessToken = (new AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/").Result;

是的,这确实是可能的。如果您使用托管标识,例如在Azure函数中,这看起来很简单,如下所示:

using Microsoft.Azure.Services.AppAuthentication;

var connection = new SqlConnection("Server=tcp:yourdbserver.database.windows.net,1433;Initial Catalog=mydatabase;")
connection.AccessToken = (new AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/").Result;

为了提供更多的上下文,我正在运行一个部署在虚拟机(IIS)上的MVC web应用程序。当网站打开时,系统会提示用户登录Azure广告。这是有效的。然后,我希望用户能够对Azure SQL数据库进行身份验证,而无需再次登录。我无法使用PromptBehavior方法打开对话框,因为该站点将由客户端计算机访问(该对话框不会显示在客户端计算机上)。尝试上述方法时,我遇到以下错误:Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProviderException:参数:连接字符串:[未指定连接字符串]、资源:、权限:。异常消息:尝试了以下4种方法来获取访问令牌,但均无效…为了提供更多上下文,我正在运行一个部署在虚拟机(IIS)上的MVC web应用程序。当网站打开时,系统会提示用户登录Azure AD。此操作有效。然后,我希望用户能够验证Azure SQL数据库,而无需再次登录。我无法使用PromptBehavior方法打开对话框,因为客户端计算机将访问该网站(该对话框不会在客户端计算机上显示)。尝试上述方法时,我遇到以下错误:Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProviderException:参数:连接字符串:[未指定连接字符串],资源:,权限:。异常消息:尝试了以下4种方法来获取访问令牌,但均无效。。。。