/// <summary>
 /// Redireciona o contexto HTTP corrente para a url informada no AuthenticationResult caso haja uma
 /// </summary>
 /// <param name="result"></param>
 public void RedirecionarUrl(AuthenticationResult result)
 {
     if (!string.IsNullOrEmpty(result.ReturnUrl))
     {
         HttpContext.Current.Response.Redirect(result.ReturnUrl);
     }
 }
        /// <summary>
        /// Executa o processo de autenticação baseando-se na regra de autenticação informada como parâmetro
        /// </summary>
        /// <param name="context">Contexto HTTP</param>
        /// <param name="username">Login do usuário</param>
        /// <param name="rememberMe">indica se deve ser armazenado um cookie permanente na máquina do cliente</param>
        /// <param name="userData">dados customizados do usuário</param>
        /// <param name="authenticationHandler">Método que contem a regra de autenticação</param>
        /// <returns></returns>
        public AuthenticationResult Logon(HttpContext context, string username, bool rememberMe, string userData, Func<bool> authenticationHandler)
        {
            AuthenticationResult result = new AuthenticationResult();
            FormsAuthenticationTicket tkt;
            string cookiestr;
            HttpCookie ck;

            if (authenticationHandler())
            {
                tkt = new FormsAuthenticationTicket(1, username, DateTime.Now, DateTime.Now.AddMinutes(30), rememberMe, userData);
                cookiestr = FormsAuthentication.Encrypt(tkt);
                ck = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr);
                
                if (rememberMe)
                {
                    ck.Expires = tkt.Expiration;
                    ck.Path = FormsAuthentication.FormsCookiePath;
                }
                
                context.Response.Cookies.Add(ck);
                string strRedirect;
                strRedirect = context.Request["ReturnUrl"];

                if (strRedirect != null)
                {
                    result.ReturnUrl = strRedirect;
                }
                result.Success = true;

            }
            else
            {
                result.Success = false;
            }

            return result;
        }
 /// <summary>
 /// Redireciona o contexto HTTP corrente para a url informada no AuthenticationResult caso haja uma
 /// </summary>
 /// <param name="result"></param>
 public void RedirecionarUrl(AuthenticationResult result)
 {
     //Itau.SC.Mar2.Web.Security.Mar2Pages.RedirectProcessRequest();
 }