public static void StartAuthorization(string userName, string password) { _webRequest.UserName = userName; _webRequest.Password = password; Application.InvokeOnMainThread(() => AuthScreen.EditableVisualElements(false)); _webRequest.Get(Settings.AuthUrl, Callback); }
private static void Callback(object sender, ResultEventArgs <WebRequest.WebRequestResult> args) { if (args.Result.Success) { #if DEBUG DConsole.WriteLine("Авторизация успешна"); DConsole.WriteLine($"UserId - {Settings.UserId} Web Request Result - {args.Result.Result}"); #endif Utils.TraceMessage($"{nameof(PushNotification)}.{nameof(PushNotification.IsInitialized)} -> {PushNotification.IsInitialized}"); //Проверяем, если пользователь уже сохранен, то делаем частичную синхронизацию, иначе полную. // ReSharper disable once StringCompareIsCultureSpecific.3 if (string.Compare(Settings.User, _webRequest.UserName, true) == 0) { #if DEBUG DConsole.WriteLine($"Авторизировались, пользователь сохранен в системе."); DConsole.WriteLine("Сохраняем пароль"); #endif Settings.Password = _webRequest.Password; #if DEBUG DConsole.WriteLine($"Запустили частичную синхронизацию. From class {nameof(Authorization)}"); #endif DBHelper.SyncAsync(); Utils.TraceMessage($"{nameof(PushNotification)}.{nameof(PushNotification.IsInitialized)} -> {PushNotification.IsInitialized}"); DConsole.WriteLine("Loading first screen..."); Navigation.ModalMove("EventListScreen"); } else { #if DEBUG DConsole.WriteLine($"Авторизировались, пользователь НЕ сохранен в системе."); DConsole.WriteLine("Сохраняем пользователя и пароль в системе"); #endif Settings.User = _webRequest.UserName; Settings.Password = _webRequest.Password; #if DEBUG DConsole.WriteLine($"Запустили полную синхронизацию. From class {nameof(Authorization)}"); #endif Utils.TraceMessage($"{nameof(PushNotification)}.{nameof(PushNotification.IsInitialized)} -> {PushNotification.IsInitialized}"); Application.InvokeOnMainThread(() => AuthScreen.EditableVisualElements(false)); DBHelper.FullSyncAsync(ResultEventHandler); } } else { #if DEBUG DConsole.WriteLine($"Авторизация не удалась. Сбрасываем пароль."); #endif Settings.Password = ""; Application.InvokeOnMainThread(AuthScreen.ClearPassword); ErrorMessageWithToast(args); Application.InvokeOnMainThread(() => AuthScreen.EditableVisualElements(true)); } }
public static void StartAuthorization(string userName, string password) { Init(); _user = userName; _password = password; var userpass = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{userName}:{password}")); _webRequest.AddHeader($"Authorization", $"Basic {userpass}"); Utils.TraceMessage($"Header auth in BASE64:{userpass}"); Application.InvokeOnMainThread(() => AuthScreen.EditableVisualElements(false)); Utils.TraceMessage($"Url auth: {Settings.AuthUrl}"); _webRequest.Get(Settings.AuthUrl, Callback); }
private static void ResultEventHandler(object sender, ResultEventArgs <bool> resultEventArgs) { if (!DBHelper.SuccessSync) { Settings.User = ""; Settings.Password = ""; Application.InvokeOnMainThread(AuthScreen.ClearPassword); Application.InvokeOnMainThread(() => AuthScreen.EditableVisualElements(true)); return; } #if DEBUG DConsole.WriteLine(Parameters.Splitter); DConsole.WriteLine("Синхронизация удачна"); DConsole.WriteLine($"{nameof(DBHelper.SuccessSync)} - {DBHelper.SuccessSync}"); DConsole.WriteLine($"In Class {nameof(Authorization)} Method {nameof(StartAuthorization)}"); DConsole.WriteLine(Parameters.Splitter); DConsole.WriteLine("Loading first screen..."); #endif FileSystem.ClearPrivate(); FileSystem.ClearShared(); FileSystem.SyncShared(Settings.ImageServer, Settings.User, Settings.Password); Application.InvokeOnMainThread(() => Navigation.ModalMove(nameof(EventListScreen))); }