protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID).IsVisitor() ||
                    !FilesSettings.EnableThirdParty || !ImportConfiguration.SupportDocuSignInclusion)
                {
                    throw new SecurityException(FilesCommonResource.ErrorMassage_SecurityException_Create);
                }

                var error = Request["error"];
                if (!string.IsNullOrEmpty(error))
                {
                    if (error == "access_denied")
                    {
                        error = "Canceled at provider";
                    }
                    throw new Exception(error);
                }

                OAuth20Token token;

                var code = Request["code"];
                if (!string.IsNullOrEmpty(code))
                {
                    token = DocuSignLoginProvider.GetAccessToken(code);
                    DocuSignHelper.ValidateToken(token);
                    DocuSignToken.SaveToken(token);
                }
                else
                {
                    token = DocuSignToken.GetToken();
                    if (token == null)
                    {
                        OAuth20TokenHelper.RequestCode(HttpContext.Current,
                                                       DocuSignLoginProvider.DocuSignOauthCodeUrl,
                                                       DocuSignLoginProvider.DocuSignOAuth20ClientId,
                                                       DocuSignLoginProvider.DocuSignOAuth20RedirectUrl,
                                                       DocuSignLoginProvider.DocuSignScope);
                        return;
                    }
                }

                SubmitToken("", Source);
            }
            catch (ThreadAbortException)
            {
            }
            catch (Exception ex)
            {
                Global.Logger.Error("DocuSign", ex);
                SubmitError(ex.Message, Source);
            }
        }