2016-09-09 4 views
4

В ADAL.Net 3.x UserPasswordCredential вводится поверх UserCredential из 2.x. Но тот же UserPasswordCredential не отображается в .Net Core под тем же пакетом nuget?ADAL. Net Core nuget пакет не поддерживает UserPasswordCredential

UserCredential класс имеет только одно свойство UserName

namespace Microsoft.IdentityModel.Clients.ActiveDirectory 
{ 
    // 
    // Summary: 
    //  Credential used for integrated authentication on domain-joined machines. 
    public class UserCredential 
    { 
     // 
     // Summary: 
     //  Constructor to create user credential. Using this constructor would imply integrated 
     //  authentication with logged in user and it can only be used in domain joined scenarios. 
     public UserCredential(); 
     // 
     // Summary: 
     //  Constructor to create credential with client id and secret 
     // 
     // Parameters: 
     // userName: 
     //  Identifier of the user application requests token on behalf. 
     public UserCredential(string userName); 

     // 
     // Summary: 
     //  Gets identifier of the user. 
     public string UserName { get; } 
    } 
} 

Поскольку UserPasswordCredential не доступен в .NetCore и UserCredential принимает только один параметр, имя пользователя, как ввести пароль пользователя и реализовать ниже код в .Net Ядра ?

authContext.AcquireTokenAsync(WebAPIResourceId, ClientId, userPasswordCredential); 

Я не я использую Адал 3.13.4 версия специально в .Net ядра версии 1.0

+0

Возможный дубликат [? ADAL.NET v3 не поддерживает AcquireToken с UserCredential] (http://stackoverflow.com/questions/37465949/adal-net-v3-does -not-support-purchasetoken-with-usercredential) – blowdart

+0

UserPasswordCredential недоступен в .NET Core под тем же пакетом и той же версией – racha

ответ

3

Вы правильны, UserPasswordCredentialis not available для .NET Ядра и UserCredential больше не принимает имя пользователя и пароль. Это означает, что ADAL v3 не поддерживает поток имени пользователя и пароля на .NET Core.

+1

И ошибка закрыта комментарием ["Это не поддерживается дизайном."] (https: // github .com/AzureAD/azure-activedirectory-library-for-dotnet/issues/482) –

4

Чтобы использовать учетные данные для пароля владельца ресурса, чтобы получить токен доступа для Azure AD, мы можем напрямую обращаться к HTTP-запросу с помощью HttpClient. Вот пример для справки:

+0

Похоже, что требуется client_secret –

+0

Это зависит от типа приложения. В этом случае веб-приложение требует client_secret. –

+0

Gotcha, спасибо. Также стоит отметить, что все значения должны быть закодированы URI в теле. –