コード例 #1
0
        public static int DoAuthorizationRequest(IServiceClient serviceClient, string username, bool?useWebhook, bool?advancedWebhook = null, string context = null, AuthPolicy policy = null, string title = null, int?ttl = null, string pushTitle = null, string pushBody = null, int?fraudDenialreasons = null, int?nonFraudDenialreasons = null)
        {
            try
            {
                IList <DenialReason> denialReasons        = GetDenialReasons(fraudDenialreasons, nonFraudDenialreasons);
                AuthorizationRequest authorizationRequest = serviceClient.CreateAuthorizationRequest(username, context, policy, title, ttl, pushTitle, pushBody, denialReasons);
                Console.WriteLine($"Auth Request Started: {authorizationRequest.Id}");
                if (authorizationRequest.DeviceIds != null)
                {
                    Console.WriteLine($"Auth Request Sent to Devices: {string.Join(",", authorizationRequest.DeviceIds)}");
                }

                if (useWebhook == true)
                {
                    return(HandleWebhook(serviceClient, advancedWebhook));
                }
                else
                {
                    return(PollForResponse(serviceClient, authorizationRequest));
                }
            }
            catch (AuthorizationInProgress e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine($"    Auth Request: {e.AuthorizationRequestId}");
                Console.WriteLine($"    Expires: {e.Expires}");
                Console.WriteLine($"    Same Service: {e.FromSameService}");
                return(1);
            }
            catch (BaseException e)
            {
                Console.WriteLine($"Error while authorizing user {username}. Error: {e.Message}");
                return(1);
            }
        }