none
Autenticação de usuario RRS feed

  • Pergunta

  • Pessoal estou com um sério problema no meu FormsAutheticationTicket, eu declaro ele coloco o tempo de expiração porem o mesmo não expira, preciso que após 30 minutos se ação no sistema ele expire a sessão do usuario.

    segue codigo web.config

        <authentication mode="Forms">
          <forms
                 name=".ASPXAUTH"
                 path="/"
                 loginUrl="PortalAcademicoLogin.aspx"
                 defaultUrl="Default.aspx"
                 cookieless="AutoDetect"
                 timeout="30"
                 slidingExpiration="true"></forms>
        </authentication>

    .cs (cria o ticket)

     FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
                        1,
                        string.Format("{0} - {1}", objUsuario.Idf_Usuario, objUsuario.Nme_Usuario),
                        DateTime.Now,
                        DateTime.Now.AddMinutes(30),
                        false,
                        permissoes,
                        FormsAuthentication.FormsCookiePath);
    
                    //Cria a criptografia no ticket
                    string hash = Criptografia.CriptografiaFormsAuthentication(ticket);
    
                    //Cria o cookie de usuario com as informações do ticket
                    HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
                    //Envia o cookie ao navegador.
                    HttpContext.Current.Response.Cookies.Add(cookie);
                    
    
                    string urlRequest = string.Empty;
    
                    urlRequest = "~/Default.aspx";
    
                    //Envia o usuario ao local desejado.
                    HttpContext.Current.Response.Redirect(urlRequest, false);

    Alguem tem ideia o porque do .net não expirar meu usuario e mandar ele pra tela de login?

    quinta-feira, 27 de março de 2014 20:38

Respostas

  • Dá uma olhadinho neste artigo que explica sobre Forms Authentication. 

    ASP.NET Forms Authentication

    Caso você queira mandar que depois de 30 minutos o usuário seja redirecionado para a tela de login você poderia estar usando jQuery. 

    function Redireciona() {
        setTimeout("document.location.href = 'login.aspx';", 1800000);
    }
    • Marcado como Resposta Giovani Cr terça-feira, 1 de abril de 2014 19:19
    sexta-feira, 28 de março de 2014 21:47
  • Caso o usuário se autentique:

    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( autenticado.IdUsuario, txtUsuario.Text, DateTime.Now, DateTime.Now.AddMinutes(15), chkLembrar.Checked, autenticado.Role, FormsAuthentication.FormsCookiePath); //Criptografando o ticket string hash = FormsAuthentication.Encrypt(ticket); //cria um cookie e atribui todos os valores do ticket a ele HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash); //verifica se o ticket é persistente e passa a informaçao ao cookie if (ticket.IsPersistent) cookie.Expires = ticket.Expiration; //grava o cookie no browser do usuario Response.Cookies.Add(cookie);

    string returnUrl = Request.QueryString["ReturnUrl"];

    if(returnUrl != null) //apenas logou, redireciona pro inicio

    returnUrl = "Principal.aspx";

    Response.Redirect(returnUrl);

    • Editado Eduardo Cury sábado, 29 de março de 2014 03:37
    • Marcado como Resposta Giovani Cr terça-feira, 1 de abril de 2014 19:19
    sábado, 29 de março de 2014 03:34

Todas as Respostas

  • Dá uma olhadinho neste artigo que explica sobre Forms Authentication. 

    ASP.NET Forms Authentication

    Caso você queira mandar que depois de 30 minutos o usuário seja redirecionado para a tela de login você poderia estar usando jQuery. 

    function Redireciona() {
        setTimeout("document.location.href = 'login.aspx';", 1800000);
    }
    • Marcado como Resposta Giovani Cr terça-feira, 1 de abril de 2014 19:19
    sexta-feira, 28 de março de 2014 21:47
  • Caso o usuário se autentique:

    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( autenticado.IdUsuario, txtUsuario.Text, DateTime.Now, DateTime.Now.AddMinutes(15), chkLembrar.Checked, autenticado.Role, FormsAuthentication.FormsCookiePath); //Criptografando o ticket string hash = FormsAuthentication.Encrypt(ticket); //cria um cookie e atribui todos os valores do ticket a ele HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash); //verifica se o ticket é persistente e passa a informaçao ao cookie if (ticket.IsPersistent) cookie.Expires = ticket.Expiration; //grava o cookie no browser do usuario Response.Cookies.Add(cookie);

    string returnUrl = Request.QueryString["ReturnUrl"];

    if(returnUrl != null) //apenas logou, redireciona pro inicio

    returnUrl = "Principal.aspx";

    Response.Redirect(returnUrl);

    • Editado Eduardo Cury sábado, 29 de março de 2014 03:37
    • Marcado como Resposta Giovani Cr terça-feira, 1 de abril de 2014 19:19
    sábado, 29 de março de 2014 03:34