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; } }
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)); } } }