protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                ValidaRequest();

                ProcessaDadosRequest();
            }
            catch (ThreadAbortException) { }
            catch (Exception ex)
            {
                try
                {
                    GradualLogger.Log(this.GetType().FullName, MethodInfo.GetCurrentMethod().Name, ex);
                    byte[] byt     = System.Text.Encoding.UTF8.GetBytes(ex.StackTrace);
                    string encoded = HttpUtility.UrlEncode(Convert.ToBase64String(byt));
                    Response.Redirect(String.Format("Error.aspx?Message={0}&StackTrace={1}", ex.Message, encoded));
                }
                catch (ThreadAbortException) { }
                catch (Exception exp)
                {
                    byte[] byt     = System.Text.Encoding.UTF8.GetBytes(exp.StackTrace);
                    string encoded = HttpUtility.UrlEncode(Convert.ToBase64String(byt));
                    Response.Redirect(String.Format("Error.aspx?Message={0}&StackTrace={1}", exp.Message, encoded));
                }
            }
        }
        private void ProcessaDadosRequest()
        {
            try
            {
                // Carrega parametros
                string token     = Request.Params["Token"];
                string tokenType = Request.Params["TokenType"];
                string host      = Request.Params["Host"];
                bool   erro      = false;

                if (!string.IsNullOrEmpty(Request.Params["Erro"]))
                {
                    erro = true;
                }

                // Cria requisicao
                Request request = new Request();
                request.Host          = host;
                request.Token         = token;
                request.TokenType     = tokenType;
                request.PublicKeyPath = MapPath(String.Format("~/{0}", @ConfigurationManager.AppSettings.Get("PrivateKey")));

                // Efetua integracao
                Integration integration = new Integration();
                Response    response    = integration.Integrate(request);

                // Valida resposta
                if (response.Valid)
                {
                    Session["atributoAutenticacaoAcessoDireto"] = response.User.Login;
                    string page = string.Format("{0}/ProcessaLoginAcessoDireto.aspx", ConfigurationManager.AppSettings.Get("EnderecoFerramenta"));

                    if (erro)
                    {
                        throw new Exception("Teste de erro");
                    }

                    Response.Redirect(page);
                }
                else
                {
                    GradualLogger.Log(this.GetType().FullName, MethodInfo.GetCurrentMethod().Name, response.Except);
                    byte[] byt     = System.Text.Encoding.UTF8.GetBytes(response.Except.StackTrace);
                    string encoded = HttpUtility.UrlEncode(Convert.ToBase64String(byt));
                    Response.Redirect(String.Format("Error.aspx?Message={0}&StackTrace={1}", response.Except.Message, encoded));
                }
            }
            catch (ThreadAbortException) { }
            catch (Exception ex)
            {
                try
                {
                    GradualLogger.Log(this.GetType().FullName, MethodInfo.GetCurrentMethod().Name, ex);
                    byte[] byt     = System.Text.Encoding.UTF8.GetBytes(ex.StackTrace);
                    string encoded = HttpUtility.UrlEncode(Convert.ToBase64String(byt));
                    Response.Redirect(String.Format("Error.aspx?Message={0}&StackTrace={1}", ex.Message, encoded));
                }
                catch (ThreadAbortException) { }
                catch (Exception exp)
                {
                    byte[] byt     = System.Text.Encoding.UTF8.GetBytes(exp.StackTrace);
                    string encoded = HttpUtility.UrlEncode(Convert.ToBase64String(byt));
                    Response.Redirect(String.Format("Error.aspx?Message={0}&StackTrace={1}", exp.Message, encoded));
                }
            }
        }