Login Azure AAD用户静默登录以提交Datalake U-SQL作业

Login Azure AAD用户静默登录以提交Datalake U-SQL作业,login,active-directory,jobs,azure-data-lake,u-sql,Login,Active Directory,Jobs,Azure Data Lake,U Sql,我已经试过了这个样品 在上面的示例中,用户已使用交互式弹出窗口登录,但我希望以静默方式登录。还有别的办法吗 public static ServiceClientCredentials AuthenticateAzure( string domainName, string nativeClientAppCLIENTID) { // User login via interactive popup SynchronizationContext.SetSynchr

我已经试过了这个样品 在上面的示例中,用户已使用交互式弹出窗口登录,但我希望以静默方式登录。还有别的办法吗

 public static ServiceClientCredentials AuthenticateAzure(
    string domainName,
    string nativeClientAppCLIENTID)
{
    // User login via interactive popup
    SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
    // Use the client ID of an existing AAD "Native Client" application.
    var activeDirectoryClientSettings = ActiveDirectoryClientSettings.UsePromptOnly(nativeClientAppCLIENTID, new Uri("urn:ietf:wg:oauth:2.0:oob"));
    return UserTokenProvider.LoginWithPromptAsync(domainName, activeDirectoryClientSettings).Result;
}

是的,事实上,确实有办法做到这一点。我最近在这样一个项目中解决了这个问题。整个魔法在于LoginSilentAsync功能。有关详细信息,请参阅此Microsoft帖子:

我在类的构造函数中调用了Authenticate()函数;然后继续这样使用它:

 ServiceClientCredentials _creds = Authenticate(... ... ...);
 string _subscriptionId = "XXXXXXXXX";
// Create client objects and set the subscription ID
 DataLakeStoreAccountManagementClient _adlsClient = new  DataLakeStoreAccountManagementClient(_creds) { SubscriptionId = _subscriptionId };
 DataLakeStoreFileSystemManagementClient _adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(_creds);

如果这就是你想要的,请告诉我。是的,事实上,确实有办法做到这一点。我最近在这样一个项目中解决了这个问题。整个魔法在于LoginSilentAsync功能。有关详细信息,请参阅此Microsoft帖子:

我在类的构造函数中调用了Authenticate()函数;然后继续这样使用它:

 ServiceClientCredentials _creds = Authenticate(... ... ...);
 string _subscriptionId = "XXXXXXXXX";
// Create client objects and set the subscription ID
 DataLakeStoreAccountManagementClient _adlsClient = new  DataLakeStoreAccountManagementClient(_creds) { SubscriptionId = _subscriptionId };
 DataLakeStoreFileSystemManagementClient _adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(_creds);
如果这是你想要的,请告诉我