private void Browser_LoadCompleted(object sender, NavigationEventArgs e) { if (this.IsLoaded && this.IsActive && e.Uri.AbsoluteUri.StartsWith(this.redirectUrl)) { this.microsoftAccessInfo = MicrosoftAccessInfo.Parse(e.Uri); this.DialogResult = this.microsoftAccessInfo != null; } }
public async Task <MicrosoftAccessInfo> SignInSilentlyAsync() { MicrosoftAccessInfo microsoftAccessInfo = null; var taskCompletionSource = new TaskCompletionSource <object>(); WebBrowser webBrowser = new WebBrowser(); webBrowser.Navigated += (sender, e) => { if (e.Uri.AbsoluteUri.StartsWith(this.RedirectUrl)) { microsoftAccessInfo = MicrosoftAccessInfo.Parse(e.Uri); taskCompletionSource.SetResult(null); } }; webBrowser.Navigate(this.SignInUrl + "&display=none"); await Task.WhenAny(taskCompletionSource.Task, Task.Delay(SignInTimeout)); return(microsoftAccessInfo); }