AuthenticationAgentContinuationHelper - «Обнаружен повторяющийся тип Java!» - PullRequest
0 голосов
/ 05 января 2019

Я разрабатываю приложение с Xamarin.Forms, где приложение должно работать на Windows и Android для первой версии. Должен API Graph для доступа к OneDrive / OneNote.

Мне уже удалось получить имя вошедшего в систему пользователя в UWP (универсальная платформа Windows). Поэтому я попытался развернуть то же приложение на Android, где вызовы очень похожи со следующими расширениями:

  • Нужен UIParent
  • AuthenticationAgentContinuationHelper.SetAuthenticationAgentContinuationEventArgs (requestCode, resultCode, data); звонок нужен

UIParent часть уже работает, но AuthenticationAgentContinuationHelper не может быть встроен в приложение.

Здесь Visual Studio говорит:

Duplicate Java type found!
Mappings between managed types and Java types must be unique.
First Type:
'Microsoft.Identity.Client.Platforms.Android.SystemWebview.AuthenticationActivity, Microsoft.Identity.Client, Version=2.6.2.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae';
Second Type:
'Microsoft.Identity.Core.UI.SystemWebview.AuthenticationActivity, Microsoft.IdentityModel.Clients.ActiveDirectory, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

Приложение Xamarin запускается как новое приложение с использованием стратегии совместного использования кода «.NET Standard» с пустым шаблоном из Visual Studio. Пока я читал, это заменило способ "PCL", который не может быть выбран в VS2017.

У вас есть идея, как это можно решить?

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Эта ошибка возникла из-за того, что репозиторий MSAL делился кодом с ADAL, в то время как команда работала над обеспечением четности функций для MSAL и общего кэша. Затем MSAL был возвращен к исходному репо, но пространства имен Android и iOS не были обновлены, поэтому возник конфликт при использовании ADAL и MSAL в одном проекте. Это было исправлено в MSAL 2.7 для классов iOS ViewController и ADAL 4.5 для классов Android AuthenticationActivity.

0 голосов
/ 13 января 2019

Вы уверены, что вам нужны пакеты Microsoft.Identity.Client (MSAL) и Microsoft.IdentityModel.Clients.ActiveDirectory (ADAL)?

MSAL используется для аутентификации на конечной точке AAD v2, тогда как ADAL используется для аутентификации на конечной точке AAD v1, поэтому теоретически вам понадобится одна или другая.

Может быть, есть случаи, когда вам понадобится и то и другое, но я получаю ту же ошибку, и когда я использую MSAL для аутентификации, я удалил пакет nuget Microsoft.IdentityModel.Clients.ActiveDirectory, и все было хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...