2017-07-12 1 views
0

サンプルを試しましたhttps://github.com/blumu/azure-content/blob/master/articles/data-lake-analytics/data-lake-analytics-get-started-net-sdk.md 上記のサンプルでは、​​ユーザーは対話型ポップアップを使用してログインしていますが、それを行う他の方法はありますか?Azure Datalake U-SQLジョブのサブスクリプションでサイレントにログイン

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; 
} 

答えて

2

確かにこれを行う方法があります。最近このようなプロジェクトでこれを解決しました。全体の魔法はLoginSilentAsync機能にあります。詳細については、このマイクロソフトのポストで見つけることができます:https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-get-started-net-sdk

private ServiceClientCredentials Authenticate(string _adlsWebClientId, string _adlsClientSecret, string _adlsDomain) 
    {    
     SynchronizationContext.SetSynchronizationContext(new SynchronizationContext()); 

     ClientCredential clientCredential = new ClientCredential(_adlsWebClientId, _adlsClientSecret); 

     return ApplicationTokenProvider.LoginSilentAsync(_adlsDomain, clientCredential).Result; 

    } 

私はクラスのコンストラクタで認証()機能を呼び出しました。その後、このようにそれを使用するようになった:

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); 

それはあなたが

を求めていたものだなら、私を知ってみましょう
関連する問題