none
Como salvar um Cookie de uma pagina e depois passar para outra ? RRS feed

  • Pergunta

  • Vou colocar um exemplo do que eu estou querendo.

    Tenho um TextBoxNome.Text na minha pagina1.aspx.cs

    Preciso gravar em um CookieNome = TextBoxNome.tex

    E Depois recuperar esse cookie na minha pagina2.aspx.cs

    TextBoxNome2.text = CookieNome

    Por favor tem como alguem me ajudar ?

    Fico no aguardo

    Obrigado

    terça-feira, 19 de janeiro de 2016 20:10

Respostas

  • Bom dia Paulo,

    Agora entendi, o problema está na hora de passar o valor do cookie para o TextBox porque você não recuperando o seu valor com o método "ToString()". Para isso, você deve fazer da seguinte maneira:

    HttpCookie CookieUsuario = Request.Cookies.Get("SessionUsuario");
    
    // Recuperação do conteúdo do cookie.
    USUARIO.Text = CookieUsuario.Value;

    Abs.

    Bruno Destro


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/

    • Marcado como Resposta Ricardo-ti2016 terça-feira, 26 de janeiro de 2016 19:56
    sexta-feira, 22 de janeiro de 2016 09:29

Todas as Respostas

  • Cara usa Session é bem facin e tem o mesmo funcionamento
    // Setando conteúdo em uma Session
    Session["FirstName"] = firstName;
    
    // Recuperando conteúdo
    firstName = (string)(Session["FirstName"]);
    
    
    
    
    

    terça-feira, 19 de janeiro de 2016 21:09
  • Ricardo caso deseje usar cookies pode usar com JavaScript da seguinte maneira:

    Colocar um cookie:

    var usuario = document.getElementById("TextBoxNome").value;
    document.cookie="username=" + usuario ;

    Ler o Cookie:

    document.getElementById("TextBoxNome2").text = document.cookie

    Deletar:

    document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC"; 

    Para maiores informações:
    http://www.w3schools.com/js/js_cookies.asp

    Caso ache mais facil, tambem pode usar bibliotecas JQuery, JQuery Cookie:

    https://github.com/carhartl/jquery-cookie




    If the answer was helpful vote / mark as answered

    Se a resposta foi útil vote / marque como respondido



    • Sugerido como Resposta Jean LLopes terça-feira, 19 de janeiro de 2016 21:58
    • Editado Jean LLopes terça-feira, 19 de janeiro de 2016 22:01
    • Não Sugerido como Resposta Jean LLopes terça-feira, 19 de janeiro de 2016 22:01
    • Sugerido como Resposta Jean LLopes terça-feira, 19 de janeiro de 2016 22:01
    • Marcado como Resposta Marcos SJ quarta-feira, 20 de janeiro de 2016 10:50
    • Não Marcado como Resposta Ricardo-ti2016 quarta-feira, 20 de janeiro de 2016 19:52
    terça-feira, 19 de janeiro de 2016 21:58
  • Boa noite,

    Para fazer o uso de cookie, você pode armazenar alguns objetos/valores e seus possíveis"atributos". No seu caso, o atributo seria o Nome do objeto Usuario.

    Para armazenar valor em um cookie, faça da seguinte maneira:

    Response.Cookies["User"]["Name"] = TextBoxNome.Text.Trim();

    Já para fazer a leitura do valor, veja o código abaixo:

    TextBoxNome.Text = Request.Cookies["User"]["Name"].ToString();

    Abs.

    Bruno Destro


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/

    • Marcado como Resposta Marcos SJ quarta-feira, 20 de janeiro de 2016 10:50
    • Não Marcado como Resposta Ricardo-ti2016 quarta-feira, 20 de janeiro de 2016 19:52
    terça-feira, 19 de janeiro de 2016 23:17
  • Boa Tarde Bruno

    Eu estava usando Session. Porem como meu provedor só da 20 minutos e não tem como mudar por ser hospedagem compartilhada.  E nesse caso a cada 20 minutos os usuarios tem que logar no sistema.

    Então resolvi usar Cookies.

    Vi seu exemplo acima e mudei todo meu codigo de session para cookie ficando da seguinte forma:

    //Aqui eu recebo o usuario que esta cadastrado. Eu conferi e no CADUSUARIOS.CLIENTE esta com a informação porem não esta gravando no Response.Cookies["User"]["SessionClientes"]

    Response.Cookies["User"]["SessionClientes"] = CADUSUARIOS.CLIENTE.ToString();

    //Não da erro e passa direto. Então na outra pagina eu tentei ver se aparece os dados

    if (Request.Cookies["User"]["SessionClientes"].ToString() == "BLOQUEADO")
                    {
                        btnSearch.Enabled = false;
                        btn_LimpaPesq.Enabled = false;
                    }

    //Porem no Request.Cookies["User"]["SessionClientes"].ToString() não recebe valor nenhum e agora meu sistema ficou sem nenhuma informação. 

    //Detalhe eu uso varios cookies. Eu coloquei so 1 exemplo acima para melhor entendimento.

    Aguardo um retorno o mais breve possivel.

    Obrigado


    quarta-feira, 20 de janeiro de 2016 20:00
  • Boa noite Ricardo,

    Experimente salvar o cookie da seguinte maneira:

    HttpCookie cookieValor = new HttpCookie("nomeCookie", conteudoCookie.ToString());
    
    Response.SetCookie(cookieValor);
    
    //OU
    
    Response.Cookies.Add(cookieValor);

    E para recuperar o conteúdo, da seguinte maneira:

    HttpCookie cookieValor = Request.Cookies.Get("nomeCookie");

    Abs.

    Bruno Destro


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/


    quarta-feira, 20 de janeiro de 2016 22:44
  • Boa Tarde Bruno

    Modifiquei meu Código C# de acordo como você postou acima.

    Pagina de Login.aspx

    HttpCookie CookieUsuario = new HttpCookie("SessionUsuario", a.ToString());
    Response.SetCookie(CookieUsuario);

    Pagina que recebe as informações:

    HttpCookie CookieUsuario = Request.Cookies.Get("SessionUsuario");
    USUARIO.Text = CookieUsuario.ToString();

    Não da erro, porem salva no meu textbox dessa forma:

    System.Web.HttpCookie

    Sendo que era para salvar com o usuario:

    Paulo

    Não entendi meu erro. Você pode me ajudar ?

    Fico no aguardo.

    Muito Obrigado.

    quinta-feira, 21 de janeiro de 2016 20:07
  • Boa noite Ricardo,

    O conteúdo da variável/componente "a" está correto? Quando você passa o valor de "a.ToString()", o valor é "Paulo"? Estranho, porque dessa forma deveria funcionar...o que parece é que o conteúdo que você está passando não está certo ou o cookie está sofrendo alteração.

    Para garantir que o cookie não está sofrendo expiração (o que eu acho difícil), experimente fazer a seguinte alteração na hora de enviar o conteúdo para o cookie:

    HttpCookie cookieValor = new HttpCookie("nomeCookie", conteudoCookie.ToString());
    
    // Linha adicionada, cuja será responsável 
    // por expirar o cookie após 30 minutos.
    cookieValor.Expires = DateTime.Now.AddMinutes(30);
    
    Response.SetCookie(cookieValor);
    
    //OU
    
    Response.Cookies.Add(cookieValor);

    Abs.

    Bruno Destro


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/

    quinta-feira, 21 de janeiro de 2016 23:48
  • Bom dia Bruno

    O conteúdo da minha variável esta certo conforme abaixo

    HttpCookie CookieUsuario = new HttpCookie("SessionUsuario", a.ToString());
    Response.SetCookie(CookieUsuario);

    Eu fiz passo a passo com breakpoint para ver se o Cookie usuario esta recebendo os dados. E esta recebendo o usuario Paulo normalmente.

    Na 2 pagina que recebe o conteudo o CookieUsuario esta recebendo o conteudo da 1 pagina. Porem o textbox não reconhece. Muito estranho. Devo estar fazendo algo de errado. Olha meu codigo abaixo da 2 pagina:

    HttpCookie CookieUsuario = Request.Cookies.Get("SessionUsuario");
    USUARIO.Text = CookieUsuario.ToString();

    Por favor tem como me ajudar ?

    Fico no aguardo.

    Muito Obrigado.

    sexta-feira, 22 de janeiro de 2016 07:17
  • Bom dia Paulo,

    Agora entendi, o problema está na hora de passar o valor do cookie para o TextBox porque você não recuperando o seu valor com o método "ToString()". Para isso, você deve fazer da seguinte maneira:

    HttpCookie CookieUsuario = Request.Cookies.Get("SessionUsuario");
    
    // Recuperação do conteúdo do cookie.
    USUARIO.Text = CookieUsuario.Value;

    Abs.

    Bruno Destro


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/

    • Marcado como Resposta Ricardo-ti2016 terça-feira, 26 de janeiro de 2016 19:56
    sexta-feira, 22 de janeiro de 2016 09:29