private async void wvAutoLogin_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
        {
            if (args.Uri.ToString().Contains($"{LoginHelper.FschoolDomain}/DefaultPage/StudentDefaultPage.aspx"))
            {
                args.Cancel = true;
                string uriString = args.Uri.ToString();

                string sessionID = LoginHelper.GetSessionID();
                wvAutoLogin.Stop();

                var cookies = LoginHelper.GetAndDeleteLoginCookie();

                // We can kinda *guess* the email address by the student id
                string email = uriString.Substring(uriString.IndexOf("=") + 1).Replace("#", "") + "@fpt.edu.vn";
                string name  = await AccountModel.GetAccountName(sessionID);

                IsEnabled = true;
                if (!string.IsNullOrEmpty(name))
                {
                    var createdAccount = await AccountProvider.AddOrUpdateAccountAsync(name, email, sessionID, cookies);

                    await AccountProvider.SetActiveAccountAsync(createdAccount);

                    txblLoginGranted.Text = $"Currently logged is as {name}";
                    foLoginGranted.ShowAt(nviAccount, new FlyoutShowOptions()
                    {
                        Placement = FlyoutPlacementMode.Top
                    });
                }
                else
                {
                    Frame.Navigate(typeof(LoginForm), CommonPageCommand.CannotGoBackLoginPage, new DrillInNavigationTransitionInfo());
                }

                prSigningIn.IsActive = false;
            }
        }
Esempio n. 2
0
        private async void webLogin_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
        {
            if (args.Uri.ToString().Contains($"{FschoolDomain}/DefaultPage/StudentDefaultPage.aspx"))
            {
                args.Cancel = true;
                string uriString = args.Uri.ToString();
                webLogin.Stop();

                string sessionID = httpBase.CookieManager.GetCookies(new Uri(FschoolDomain)).FirstOrDefault(x => x.Name == SessionIDCookieName).Value;
                var    cookies   = LoginHelper.GetAndDeleteLoginCookie();

                // We can kinda *guess* the email address by the student id
                string email = uriString.Substring(uriString.IndexOf("=") + 1).Replace("#", "") + "@fpt.edu.vn";
                string name  = await AccountModel.GetAccountName(sessionID);

                if (!string.IsNullOrEmpty(name))
                {
                    var createdAccount = await AccountProvider.AddOrUpdateAccountAsync(name, email, sessionID, cookies);

                    await AccountProvider.SetActiveAccountAsync(createdAccount);

                    Frame.GoBack(new DrillInNavigationTransitionInfo());
                }
                else
                {
                    ContentDialog failedToLoginDialog = new ContentDialog()
                    {
                        Content         = "Sorry, we can't login using this account, please try again",
                        CloseButtonText = "OK"
                    };
                    await failedToLoginDialog.ShowAsync();

                    LoginHelper.GetAndDeleteLoginCookie();
                    webLogin.Navigate(new Uri(GoogleLoginLink));
                }
            }
        }