public override async void OnPageStarted(WebView view, string url, Bitmap favicon)
        {
            base.OnPageStarted(view, url, favicon);
            layoutProgress            = view.FindViewById <LinearLayout>(Resource.Id.layout_progress);
            layoutProgress.Visibility = ViewStates.Visible;
            layoutProgress.Enabled    = true;
            //view.DispatchFinishTemporaryDetach();
            if (url.Contains("&code="))
            {
                string code = Common.FunGetValuefromQueryString(url, "code");
                PreferenceHandler.SetAccessCode(code);
                PreferenceHandler.setLoggedIn(true);

                string tokenURL = string.Format(B2CConfig.TokenURL, B2CConfig.Tenant, B2CPolicy.SignInPolicyId, B2CConfig.ClientId, PreferenceHandler.GetAccessCode());
                var    response = await InvokeApi.Authenticate(tokenURL, string.Empty, HttpMethod.Post);

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    string strContent = await response.Content.ReadAsStringAsync();

                    var tokenNew = JsonConvert.DeserializeObject <AccessToken>(strContent);
                    PreferenceHandler.SetToken(tokenNew.id_token);
                    PreferenceHandler.SetRefreshToken(tokenNew.refresh_token);
                    layoutProgress.Visibility = ViewStates.Visible;
                    await GetUserDetails(view);
                }
            }
        }
Ejemplo n.º 2
0
        private void LogOutButton_TouchUpInside(object sender, EventArgs e)
        {
            // Added for showing loading screen
            var bounds = UIScreen.MainScreen.Bounds;

            // show the loading overlay on the UI thread using the correct orientation sizing
            loadingOverlay = new LoadingOverlay(bounds);
            View.Add(loadingOverlay);
            PreferenceHandler.setLoggedIn(false);
            PreferenceHandler.SetToken(string.Empty);
            PreferenceHandler.SetRefreshToken(string.Empty);
            PreferenceHandler.SaveUserDetails(new UserDetails()
            {
                Email     = string.Empty,
                FirstName = string.Empty,
                LastName  = string.Empty,
                RoleId    = 0,
                RoleType  = 0,
                UserId    = 0
            });
            Action ResetSession = () =>
            {
            };

            NSUrlSession.SharedSession.Reset(ResetSession);
            var ViewController = (ViewController)Storyboard.InstantiateViewController("ViewController");

            ViewController.NavigationItem.SetHidesBackButton(true, false);
            NavController.PushViewController(ViewController, true);
            SidebarController.MenuWidth = 0;
            SidebarController.CloseMenu();
            loadingOverlay.Hide();
            Logout(new LogoutModel(PreferenceHandler.GetUserDetails().Email));
        }
Ejemplo n.º 3
0
 private void Logout(LogoutModel logoutModel)
 {
     layoutProgress.Visibility = ViewStates.Visible;
     Log.Debug(TAG, "Local Logout Started");
     PreferenceHandler.setLoggedIn(false);
     PreferenceHandler.SetToken(string.Empty);
     PreferenceHandler.SetRefreshToken(string.Empty);
     PreferenceHandler.SaveUserDetails(new UserDetails());
     CookieManager.Instance.RemoveAllCookie();
     StartActivity(new Intent(Application.Context, typeof(LoginActivity)));
     Finish();
     layoutProgress.Visibility = ViewStates.Gone;
 }
        private void WebView_LoadError(object sender, UIWebErrorArgs e)
        {
            var    URL = (NSObject)e.Error.UserInfo.Values[2];
            string req = URL.ToString();

            if (req.Contains("id_token="))
            {
                string token = Common.FunGetValuefromQueryString(req, "id_token");
                PreferenceHandler.SetToken(token);
            }
            else
            {
                IOSUtil.ShowAlert("Failed to change password.Please try again later.");
            }
            var ViewController = (ViewController)Storyboard.InstantiateViewController("ViewController");

            ViewController.NavigationItem.SetHidesBackButton(true, false);
            NavController.PushViewController(ViewController, false);
            SidebarController.MenuWidth = 0;
            SidebarController.CloseMenu();
        }
Ejemplo n.º 5
0
        private async void WebView_LoadError(object sender, UIWebErrorArgs e)
        {
            var URL = (NSObject)e.Error.UserInfo.Values[2];

            string req = URL.ToString();

            if (req.Contains("&code="))
            {
                string code = Common.FunGetValuefromQueryString(req, "code");
                PreferenceHandler.SetAccessCode(code);
                string tokenURL = string.Format(B2CConfig.TokenURLIOS, B2CConfig.Tenant, B2CPolicy.SignInPolicyId, B2CConfig.Grant_type, B2CConfig.ClientId, code);
                var    response = await InvokeApi.Authenticate(tokenURL, string.Empty, HttpMethod.Post);

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    string strContent = await response.Content.ReadAsStringAsync();

                    var token = JsonConvert.DeserializeObject <AccessToken>(strContent);
                    PreferenceHandler.SetToken(token.id_token);
                    PreferenceHandler.SetRefreshToken(token.refresh_token);
                }
            }

            if (req.Contains("id_token="))
            {
                string token = Common.FunGetValuefromQueryString(req, "id_token");
                PreferenceHandler.SetToken(token);
                //PreferenceHandler.SetRefreshToken(token.refresh_token);
            }

            var responseUser = await InvokeApi.Invoke(Constants.API_GET_CURRENTUSER, string.Empty, HttpMethod.Get, PreferenceHandler.GetToken());

            if (responseUser.StatusCode != 0)
            {
                InvokeOnMainThread(() =>
                {
                    GetCurrentUserResponse(responseUser);
                });
            }
        }
Ejemplo n.º 6
0
 public override void OnPageFinished(WebView view, string url)
 {
     base.OnPageFinished(view, url);
     if (url.Contains("id_token="))
     {
         string token = Common.FunGetValuefromQueryString(url, "id_token");
         PreferenceHandler.SetToken(token);
         Intent intent = new Intent(Application.Context, typeof(MainActivity));
         intent.PutExtra(MainActivity.KEY_USER_ROLE, (int)Constants.USER_ROLE.STUDENT);
         view.Context.StartActivity(intent);
     }
     if (url.Contains("error="))
     {
         Intent intent = new Intent(Application.Context, typeof(AdminDashboardActivity));
         view.Context.StartActivity(intent);
         view.Dispose();
     }
     if (layoutProgress != null)
     {
         layoutProgress.Visibility = ViewStates.Gone;
     }
 }