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.