예제 #1
0
        private async void StartSSO(String uri, String redirectUri)
        {
            // Ensure to be on UI Thread
            if (System.Windows.Application.Current.Dispatcher.Thread != Thread.CurrentThread)
            {
                System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { StartSSO(uri, redirectUri); }));
                return;
            }


            try
            {
                SSOInProgress = true;

                if (browser == null)
                {
                    browser       = new EmbeddedBrowser();
                    browser.Icon  = Logo;
                    browser.Title = "Single Sign On";
                }

                BrowserResult browserResult;
                browserResult = await browser.InvokeAsync(uri, redirectUri);

                SSOInProgress = false;
                if (browserResult.Error)
                {
                    if (browserResult.CancelByUser)
                    {
                        SetErrorMessage("The sign -in window was closed before authorization was completed.");
                    }
                    else
                    {
                        SetErrorMessage("Authentication failed");
                    }
                    SetToBusy(false);
                }
                else
                {
                    String token = browserResult.Token;

                    // Now start login with this token
                    CurrentApplication.RbApplication.LoginWithToken(token, callbackLoginToken =>
                    {
                        if (callbackLoginToken.Result.Success)
                        {
                        }
                        SetToBusy(false);
                    });
                }
            }
            catch (Exception ex)
            {
                SSOInProgress = false;
                SetErrorMessage($"Exception occurred: [{ex.Message}]");

                // ERROR OCCURS or USER CANCELLED
                SetToBusy(false);
            }
        }
예제 #2
0
        public MainWindow(string title = null, string address = null)
        {
            Title = title ?? Title;

            EmbeddedBrowser.Init();
            InitializeComponent();
            Browser.Address = address;
        }
예제 #3
0
        //Gets new tokens from fitbit
        internal void GetNewTokens()
        {
            Application.Current.Dispatcher.Invoke((Action)(() =>
            {
                var browser = new EmbeddedBrowser(Settings.REGISTRATION_URL);
                browser.FinishEvent += Browser_FinishEvent;
                browser.RegistrationTokenEvent += Browser_RegistrationTokenEvent;
                browser.ErrorEvent += Browser_ErrorEvent;

                _browserWindow = new Window
                {
                    Title = "Register PersonalAnalytics to let it access Fitbit data",
                    Content = browser
                };

                _browserWindow.ShowDialog();
            }));
        }
예제 #4
0
        public MainWindow()
        {
            Title = "Embedded OWIN Http Application";

            var appBuilder = new AppBuilder();

            appBuilder.UseWelcomePage();
            Func <IDictionary <string, object>, Task> appFunc = appBuilder.Build();

            EmbeddedBrowser.Init(new[]
            {
                new CefCustomScheme
                {
                    SchemeHandlerFactory = new OwinSchemeHandlerFactory(appFunc),
                    SchemeName           = "http"
                }
            });
            InitializeComponent();
            Browser.Address = "http://localhost";
        }
 private bool OpenBrowser(string url)
 {
     EmbeddedBrowser.Start(url);
     //Launcher.OpenAsync(url);
     return(true);
 }