Intune MAM SDK: как получить идентификатор пользователя в iOS и Android? - PullRequest
0 голосов
/ 10 сентября 2018

Я использую Intune для регистрации приложения через приложение корпоративного портала, и теперь мой вопрос: как получить идентификатор текущего пользователя (UPN / e-mail) в формах Xamarin?

в Xamarin.iOS Я использую Intune Wrappers, и он отлично работает с Аутентификацией, но как мне получить UPN?

На Xamarin.Android Я сделал это:

Я настроил проекткак описано здесь с использованием SDK и инструмента MAM.Remapper.Я также добавил новый класс приложения, производный от MAMApplication.

В своей функции MainActivity я реализовал OnMAMCreate следующим образом:

protected override async void OnMAMCreate(Bundle bundle)
{ 
    base.OnMAMCreate(bundle);
      Xamarin.Forms.Forms.Init(this, bundle);
      LoadApplication(new App());

      var userInfo = MAMComponents.GetUserInfo();
      var userEmail = userInfo.PrimaryUser; 
}

Он продолжает выдавать ошибку, говоря, что у MAMComponents такого метода неткак GetUserInfo ().Я попытался покопаться в браузере Assembly и не нашел ничего похожего в MAMComponents.

В Интернете нет никакой помощи по интеграции Xamarin.Forms с Intune.

1 Ответ

0 голосов
/ 17 октября 2018

Я нашел помощь в этом и смог понять это. Во-первых, это должно быть сделано для конкретной платформы, что означает, что глобальный проект PCL Xamarin.forms ничего не может сделать. Вам необходимо добавить пакеты nuget в проекты Xamarin.forms для iOS и Android по отдельности.

В iOS добавьте это в свой AppDelegate.cs:

string identity = null;
IntuneMAMEnrollmentManager.Instance.LoginAndEnrollAccount(identity);
IntuneMAMPolicyManager.Instance.IsIdentityManaged(IntuneMAMEnrollmentManager.Instance.EnrolledAccount);

В Entitlement.plist включите связку ключей и добавьте две группы для MAM и adalcache, как показано:

enter image description here

В вашем Main.cs или любом другом месте, где вам нужно добавить UPN:

IntuneMAMPolicyManager.Instance.IsIdentityManaged(IntuneMAMEnrollmentManager.Instance.EnrolledAccount); 
string testUser = IntuneMAMEnrollmentManager.Instance.EnrolledAccount;

Если вы хотите манипулировать UPN в глобальном проекте PCL, используйте службу зависимостей для отправки данных в PCL.

...