public async Task StartAsync()
        {
            // Initialize services that you need before app activation
            await InitializeAsync();

            _identityService.InitializeWithAadAndPersonalMsAccounts(_config.IdentityClientId, "http://localhost");
            var silentLoginSuccess = await _identityService.AcquireTokenSilentAsync();

            if (!silentLoginSuccess || !_identityService.IsAuthorized())
            {
                _logInWindow = SimpleIoc.Default.GetInstance <ILogInWindow>();
                _logInWindow.ShowWindow();
                await StartupAsync();

                return;
            }

            _shellWindow = SimpleIoc.Default.GetInstance <IShellWindow>();
            _navigationService.Initialize(_shellWindow.GetNavigationFrame());
            _shellWindow.ShowWindow();
            _navigationService.NavigateTo(typeof(MainViewModel).FullName);

            // Tasks after activation
            await StartupAsync();
        }
예제 #2
0
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            await InitializeAsync();

//{[{

            if (!_isInitialized)
            {
                _identityService.InitializeWithAadAndPersonalMsAccounts(_appConfig.IdentityClientId, "http://localhost");
            }

            var silentLoginSuccess = await _identityService.AcquireTokenSilentAsync();

            if (!silentLoginSuccess || !_identityService.IsAuthorized())
            {
                if (!_isInitialized)
                {
                    _logInWindow = _serviceProvider.GetService(typeof(ILogInWindow)) as ILogInWindow;
                    _logInWindow.ShowWindow();
                    await StartupAsync();

                    _isInitialized = true;
                }

                return;
            }
//}]}
        }
예제 #3
0
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            // Initialize services that you need before app activation
            await InitializeAsync();

            // https://aka.ms/msal-net-token-cache-serialization
            // this generates a file-system safe directory name to stick the cache in - or use something like Resources.AppDisplayName
            // should also consider this root dir for other configuration data
            var safeAppDirectoryName      = System.IO.Path.GetInvalidFileNameChars().Aggregate(typeof(App).Assembly.GetName().Name, (current, c) => current.Replace(c, '-'));
            var rootCacheDirectory        = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), safeAppDirectoryName, _config.IdentityCacheDirectoryName);
            var storageCreationProperties = new StorageCreationPropertiesBuilder(_config.IdentityCacheFileName, rootCacheDirectory, _config.IdentityClientId).Build();
            var cacheHelper = await MsalCacheHelper.CreateAsync(storageCreationProperties).ConfigureAwait(false);

            _identityService.InitializeWithAadAndPersonalMsAccounts(_config.IdentityClientId, "http://localhost", cacheHelper);
            var silentLoginSuccess = await _identityService.AcquireTokenSilentAsync();

            if (!silentLoginSuccess || !_identityService.IsAuthorized())
            {
                _logInWindow = _serviceProvider.GetService(typeof(ILogInWindow)) as ILogInWindow;
                _logInWindow.ShowWindow();
                await StartupAsync();

                return;
            }

            _shellWindow = _serviceProvider.GetService(typeof(IShellWindow)) as IShellWindow;
            _navigationService.Initialize(_shellWindow.GetNavigationFrame());
            _shellWindow.ShowWindow();
            _navigationService.NavigateTo(typeof(MainViewModel).FullName);

            // Tasks after activation
            await StartupAsync();
        }
예제 #4
0
        public async Task StartAsync()
        {
            await InitializeAsync();

//{[{

            if (!_isInitialized)
            {
                _identityService.InitializeWithAadAndPersonalMsAccounts(_appConfig.IdentityClientId, "http://localhost");
            }

            var silentLoginSuccess = await _identityService.AcquireTokenSilentAsync();

            if (!silentLoginSuccess || !_identityService.IsAuthorized())
            {
                if (!_isInitialized)
                {
                    _logInWindow = SimpleIoc.Default.GetInstance <ILogInWindow>();
                    _logInWindow.ShowWindow();
                    await StartupAsync();

                    _isInitialized = true;
                }

                return;
            }
//}]}
        }
        private void OnLoggedOut(object sender, EventArgs e)
        {
            _logInWindow = SimpleIoc.Default.GetInstance <ILogInWindow>(Guid.NewGuid().ToString());
            _logInWindow.ShowWindow();

            _shellWindow.CloseWindow();
            _navigationService.UnsubscribeNavigation();
        }
예제 #6
0
        private void OnLoggedOut(object sender, EventArgs e)
        {
            _logInWindow = _serviceProvider.GetService(typeof(ILogInWindow)) as ILogInWindow;
            _logInWindow.ShowWindow();

            _shellWindow.CloseWindow();
            _navigationService.UnsubscribeNavigation();
        }