2017-02-14 6 views
-1

Я действительно что-то вроде этого: https://github.com/Azure-Samples/active-directory-dotnet-native-headless, который раньше работал в версии 3.9, но не сейчас.Можно ли использовать API MS Graph REST для входа пользователя в код и получения токена аутентификации?

В частности: authContext.AcquireTokenAsync (todoListResourceId, clientId, uc) .Result;

Так можно ли сделать то же самое, используя API REST?

Это функциональное испытание, поэтому мы не можем позволить пользователю войти в систему в обычном режиме. Мне нужно повторить то, что пользователь увидит после входа в систему.

+0

Что-то вроде этого: http://stackoverflow.com/a/41159005/1658906? – juunas

ответ

0

Да. Можно получить токен, используя HTTP-запрос, непосредственно для потока Resource Owner Password Credentials.

Мы можем использовать Fiddler для захвата запроса, чтобы увидеть требуемый параметр детали. А вот пример кода, чтобы использовать этот поток, чтобы получить маркер доступа для родного приложения клиента:

string resrouce = "https://graph.windows.net"; 
string clientId = ""; 
string userName = ""; 
string password = ""; 

HttpClient client = new HttpClient(); 
string body = String.Format("resource={0}&client_id={1}&grant_type=password&username={2}&password={3}", Uri.EscapeDataString(resrouce), clientId, Uri.EscapeDataString(userName), Uri.EscapeDataString(password)); 
StringContent sc = new StringContent(body,Encoding.UTF8, "application/x-www-form-urlencoded"); 
var resoult= client.PostAsync("https://login.microsoftonline.com/xxxx.onmicrosoft.com/oauth2/token", sc).Result.Content.ReadAsStringAsync().Result; 

И если вы работаете с веб-приложение, нам нужно добавить параметр client_secret в организме.

Смежные вопросы