C# 在Xamarin Forms iOS应用程序中调用ADAL AcquireTokenAsync时引用为Null

C# 在Xamarin Forms iOS应用程序中调用ADAL AcquireTokenAsync时引用为Null,c#,xamarin.ios,xamarin.forms,adal,C#,Xamarin.ios,Xamarin.forms,Adal,使用ADAL对Xamarin iOS应用程序进行身份验证。在初次登录期间一切正常,但在注销并再次登录时(例如,当AccessToken在90天后过期时重定向到登录),应用程序会因以下原因崩溃 Unhandled managed exception: Object reference not set to an instance of an object (System.NullReferenceException) at Xamarin.Forms.Platform.iOS.Platform.D

使用ADAL对Xamarin iOS应用程序进行身份验证。在初次登录期间一切正常,但在注销并再次登录时(例如,当AccessToken在90天后过期时重定向到登录),应用程序会因以下原因崩溃

Unhandled managed exception:
Object reference not set to an instance of an object (System.NullReferenceException)
at Xamarin.Forms.Platform.iOS.Platform.DidAppear () [0x0000d] in :0
at Xamarin.Forms.Platform.iOS.PlatformRenderer.ViewDidAppear (Boolean animated) [0x00006] in :0
at (wrapper managed-to-native) UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr)
at UIKit.UIApplication.Main (System.String[] args, IntPtr principal, IntPtr delegate) [0x00005] in /Users/builder/data/lanes/2077/d8e9592a/source/maccore/src/UIKit/UIApplication.cs:74
at UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0001c] in /Users/builder/data/lanes/2077/d8e9592a/source/maccore/src/UIKit/UIApplication.cs:57
at MyAwesomeApp.iOS.Application.Main (System.String[] args) [0x0000c] in d:\Working\City.Australia\MyAwesomeApp\Main\MyAwesomeApp\MyAwesomeApp\MyAwesomeApp.iOS\Main.c
s:18
源代码

var view = appDelegate.RootViewController;
appDelegate.MakeKeyAndVisible();
AdalInitializer.Initialize();
var azureSettings = AzureSettings.GetSettings();
AuthenticationContext authenticationContext = new AuthenticationContext(azureSettings.AdAuthority);
下一行就是它失败的地方

AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenAsync(azureSettings.AdResource,
azureSettings.AdClientId,
new Uri(azureSettings.AdRedirect),
new AuthorizationParameters(view),
UserIdentifier.AnyUser,
string.Format(“domain_hint={0}”, azureSettings.AdDomainHint));
正如我提到的,第一次登录很好,但是注销并再次签名会导致AcquireTokenAsync调用中出现空引用异常。如果有人遇到过这个问题或熟悉这个问题,请让我知道

问题不在于ADAL库调用,而在于UIViewController。已尝试使其线程安全并使用任务延迟进行测试,但一旦到达AcquireTokenAsync应用程序就会崩溃,出现空引用异常

无法立即获取示例应用程序,但如果此操作不太成功,将尝试获取一个示例应用程序

沙马林形态:1.4

ADAL(Microsoft.IdentityModel.Clients.ActiveDirectory):3.1.0.0

非常感谢您的任何建议/帮助

问候


Vinod Srinivasan

深入研究这个问题,可能是因为XF旧版本中存在一个bug。对许多人来说,多次动态调用主页似乎是一个问题。需要升级到最新版本,以查看是否仍存在这种情况。有更多的信息可以更新吗?我也有类似的问题。嗨@ManishJain,自从我搬家公司并且是项目的一部分后,他没有更新XF。为不能帮助你而道歉。您使用的是哪个版本的XF?尝试将您的XF和ADAL库(不确定是否有更新)更新到最新版本,以查看此问题是否得到解决。深入研究此问题,可能是因为XF旧版本中存在错误。多次动态调用主页似乎是许多人的问题。需要升级到最新版本,以查看是否仍存在这种情况。有更多的信息可以更新吗?我也有类似的问题。嗨@ManishJain,自从我搬家公司并且是项目的一部分后,他没有更新XF。为不能帮助你而道歉。您使用的是哪个版本的XF?尝试将XF和ADAL库(不确定是否有更新)更新到最新版本,以查看此问题是否得到解决。