Пустая ссылка при вызове ADAL AcquireTokenAsync в iOS-приложении Xamarin Forms

Использование 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));

Как я уже упоминал, первый вход - это хорошо, но выход и повторный вход приводят к исключению ссылки Null в вызове AcquireTokenAsync. Если кто-то сталкивался с этой проблемой или знаком с ней, пожалуйста, дайте мне знать.

Проблема не в вызове библиотеки ADAL, а в UIViewController. Попытался сделать его безопасным для работы с потоками и протестировать его с заданием на задержку, но как только он попадет в AcquireTokenAsync, приложение вылетает с нулевым исключением

Невозможно сразу получить образец приложения, но постараюсь получить его, если с этим не будет большого успеха.

Xamarin форм: 1,4

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

Любые предложения / помощь высоко ценится.

С уважением

Винод Сринивасан

0 ответов

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