2017-02-14 4 views
0

Адал: Невозможно использовать «быстрое = admin_consent» в качестве дополнительного параметра запроса в Xamarin.PCLADAL Невозможно использовать admin_consent в Xamarin.PCL

Когда я пытаюсь использовать следующий код в Xamarin PCL

result = await authContext.AcquireTokenAsync(AppIdURI, ClientId, RedirectUri, PlatformParameter, UserIdentifier.AnyUser, "prompt=admin_consent"); 

я получаю исключение:

дубликата параметр запроса 'Запрашивать' в extraqueryparameters

Я использую этот вызов для добавления разрешений для приложения на уровне администратора в сценарии с несколькими арендаторами. Без «prompt = admin_consent» я не могу согласиться на применение для всех пользователей. Когда я использую поведение по умолчанию, ADAL показывает согласие администратора при первом входе в систему, но не сохраняет изменения в Azure AD.

Возможно, кто-то знает, как справиться с этой проблемой.

Благодаря

Update 15.02.2017

Я создаю PlatformParameter в Xamarin проекта Android:

var PlatformParameter =new PlatformParameters(this); 

где 'это' есть 'активность'. Похоже, что он генерирует параметр «prompt» по умолчанию.

Эта проблема актуальна только для Xamarin, нет проблем в UWP и WPF или ASP.NET и только в сценарии с несколькими арендаторами.

+0

Возможный дубликат [ADAL пользовательское согласие срабатывает, даже когда администратор уже согласился] (http://stackoverflow.com/questions/30638506/adal-user-consent-triggered-even-when-admin-has-already-consented) – SushiHangover

+0

Можете ли вы поделиться полным URL-адресом входа, который генерируется вашим кодом? Мое предположение заключается в том, что один из ваших других параметров также устанавливает значение быстрого действия. –

+0

SushiHangover, это не дубликат, а тема, о которой вы указали, касается другой проблемы. Мой вопрос актуальен только для версии ADAL только для Xamarin. У меня нет проблем с согласия приложений, когда я заставляю использовать «prompt = admin_consent» в UWP, WPF, Console app, ASP.NET. –

ответ

1

Проблема в том, что перегрузка PlatformParameter, которую вы передаете, уже устанавливает строку запроса «приглашение» в вашем URL-адресе входа. Таким образом, когда вы вручную добавляете другую строку запроса с «подсказкой», она видит дублирующий параметр.

Вам необходимо убедиться, что для параметра «PlatformParameter» установлено значение «PromptBehavior.Auto» или дополнительные параметры строки запроса не будут работать.

Дайте мне знать, если это поможет!

+0

Спасибо за совет. Но «PromptBehavior.Auto» недоступен в версии ADAL Xamarin (PCL). PlatformParameter - PlatformParameters (this), где это Activity. Похоже, что он генерирует параметр «prompt» по умолчанию. –

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