Пример #1
0
        private async Task StartAuthorization(MobileConnectStatus response)
        {
            _state             = Guid.NewGuid().ToString("N");
            _nonce             = Guid.NewGuid().ToString("N");
            _discoveryResponse = response.DiscoveryResponse;
            var newResponse = _mobileConnect.StartAuthorization(_discoveryResponse,
                                                                response.DiscoveryResponse.ResponseData.subscriber_id, _state, _nonce, new MobileConnectRequestOptions());

            await HandleResponse(newResponse);
        }
Пример #2
0
        private void Complete(string token)
        {
            _state             = null;
            _nonce             = null;
            _discoveryResponse = null;

            accessToken.Text = string.Format("Access Token: {0}", token);

            loginPanel.Visibility  = Visibility.Collapsed;
            loggedPanel.Visibility = Visibility.Visible;
        }
        private async Task StartAuthentication(MobileConnectStatus response)
        {
            _state             = Utils.Security.GenerateSecureNonce();
            _nonce             = Utils.Security.GenerateSecureNonce();
            _discoveryResponse = response.DiscoveryResponse;
            _authOptions       = new MobileConnectRequestOptions
            {
                Scope          = GetScope(),
                Context        = "demo",
                BindingMessage = "demo auth",
                // Accept valid results and results indicating validation was skipped due to missing support on the provider
                AcceptedValidationResults = TokenValidationResult.Valid | TokenValidationResult.IdTokenValidationSkipped,
            };

            var newResponse = _mobileConnect.StartAuthentication(_discoveryResponse,
                                                                 response.DiscoveryResponse.ResponseData.subscriber_id, _state, _nonce, _authOptions);

            await HandleResponse(newResponse);
        }
Пример #4
0
 private async Task HandleResponse(MobileConnectStatus response)
 {
     System.Diagnostics.Debug.WriteLine(response.ResponseType);
     if (response.ResponseType == MobileConnectResponseType.OperatorSelection || response.ResponseType == MobileConnectResponseType.Authorization)
     {
         web.Navigate(new Uri(response.Url));
     }
     else if (response.ResponseType == MobileConnectResponseType.StartAuthorization)
     {
         _discoveryResponse = response.DiscoveryResponse;
         await StartAuthorization(response);
     }
     else if (response.ResponseType == MobileConnectResponseType.Complete)
     {
         System.Diagnostics.Debug.WriteLine(response.TokenResponse.ResponseData.AccessToken);
         Complete(response.TokenResponse.ResponseData.AccessToken);
     }
     else if (response.ResponseType == MobileConnectResponseType.Error)
     {
         HandleError(response);
     }
 }