bool HandleBaseOpenComplete(IAsyncResult result)
                {
                    parent.BaseEndOpen(result);
                    IAsyncResult openTokenProviderResult = SecurityUtils.BeginOpenTokenProviderIfRequired(
                        parent.clientTokenProvider, timeoutHelper.RemainingTime(), onOpenTokenProvider, this);

                    if (!openTokenProviderResult.CompletedSynchronously)
                    {
                        return(false);
                    }

                    return(HandleOpenTokenProviderComplete(openTokenProviderResult));
                }