我正在使用Intune通过Company Portal应用程序注册该应用程序,现在我的问题是:如何在Xamarin Forms中获取当前用户ID(UPN /电子邮件)?
在Xamarin.iOS中,我使用的是Intune包装器,它可以与身份验证正常工作,但是如何获得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的集成根本就没有在线帮助。
我在这方面找到了帮助,并且能够弄清楚。首先,必须完成特定于平台的操作,这意味着Xamarin.forms的全球PCL项目什么也做不了。您需要将nuget软件包分别添加到Xamarin.forms的iOS和Android项目中。
在iOS上,将其添加到您的AppDelegate.cs:
string identity = null;
IntuneMAMEnrollmentManager.Instance.LoginAndEnrollAccount(identity);
IntuneMAMPolicyManager.Instance.IsIdentityManaged(IntuneMAMEnrollmentManager.Instance.EnrolledAccount);
在Entitlement.plist中,启用Keychain并为MAM和adalcache添加两个组,如下所示:
在Main.cs或需要UPN的任何地方添加:
IntuneMAMPolicyManager.Instance.IsIdentityManaged(IntuneMAMEnrollmentManager.Instance.EnrolledAccount);
string testUser = IntuneMAMEnrollmentManager.Instance.EnrolledAccount;
如果要在全局PCL项目中操作UPN,请使用“依赖关系服务”将数据发送到PCL。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句