Intune MAM SDK: как получить идентификатор пользователя в iOS и Android?

Я использую 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 ответ

Решение

Я нашел помощь в этом и смог понять это. Во-первых, это должно быть сделано для конкретной платформы, что означает, что глобальный проект 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, как показано:

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

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

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

Другие вопросы по тегам