Pegar codigo pela URL

18/08/2014

0

Ola galera to com um pequeno problema aqui estou tentando passar o codigo de um usuario pela url pra depois eu receber ele e comparar se o codigo passado é o mesmo que esta sendo alterado ate ai peleza no email que eu recebo para ele redefinir a senha o codigo esta sendo passado corretamente, pois mandei mostrar pra ver se esta sendo passado corretamente.

Porem na hora de pegar ele e atribuir em uma variavel e depois fazer a comparacao com o codigo do cliente que vai ser alterado ele esta como zero e nao com o valor do codigo do cliente vejam como esta.

aqui estou passando o codigo do cliente para o email de redefinição de senha que esta correto o codigo que ele envia.
                       StringBuilder corpo = new StringBuilder();
                     
                        corpo.Append("<center><label style=color:orange; font-family:Verdana;>Recuperação de Senha</label></center>");
                   
                        corpo.Append("<label style=color:#000084; margin-left:25px;>Para redefinir a senha siga as instruções abaixo.</label><br/>");
                        corpo.Append(" Acesse este <a href='http://localhost:3718/redefinirPassword.aspx?PegarCodCliente='>link</a>.<br/>" );

                        corpo.Append(String.Format("<strong>Código:</strong><br/>", PegarCodCliente()));
                        corpo.Append("<label style=margin-left:25px;> Cadastre uma nova senha e confirme a mesma.</label><br/>");



coloquei apenas esta parte so para verem como estou passando mas a configuração do email esta tudo certo pois ele envia o email com o codigo tudo blz.

E aqui galera é onde eu tendo pegar o codigo para fazer a comparação mas aqui acho que esta o erro pois a hora que eu vou ver ele esta passando um codigo estranho (como se ele fizesse uma criptografia nesse codigo) porem quando mando mostro ele vem o codigo correto.

    //olha criei essa variavel
    int codCliente;

    // aqui galera é onde eu tento alterar a senha, aqui que esta o problema pois ele nao altera nada porque o codigo que eu uso
   //para comparar como o codigo do banco esta vindo zerado

   if (!string.IsNullOrEmpty(Request.QueryString["0"]))
                        {
                            //senha atual no banco: 8DA3FB43775DF8C31FD55BF103B350FA                                    
                                             
                           //galera acho que o problema esta aqui pois tento passar o codigo veindo da url para a variavel para depois fazer a comparacao alguem sabe se ta certo?

                            codCliente = int.Parse(Request.QueryString["0"]);

                            cliente = clientes.Find(cli => (cli.codCliente) == codCliente).First<CLIENTE>();

                            cliente.senhaCliente = Crypt(txtSenha.Text, "MD5");

                            clientes.Update(cliente);
                            clientes.SaveChanges();

                            clientes = null;
                            cliente = null;

                            lblRedSen.Text = "Senha alterada com sucesso!";
                        }


Grato Delivery-TI
Celiol.

Celiol.

Responder

Posts

18/08/2014

Kelvin Ott

Cara, onde esta
Request.QueryString["0"]
não deveria estar
Request.QueryString["PegarCodCliente"]
?
Responder

18/08/2014

Celiol.

Ha ntao eu tenho que pegar o nome do metodo é isso cara? Este PegarCodCliente é o nome do metodo é ele mesmo que eu passo para a variavel?

Porque como eu disse quando eu mando mostrar ele em uma label o codigo esta correto, só nao estou sabendo atribuir ele a esta variavel que quero fazer a comparação.

Vou tentar aqui valeu pela dica, se der certo aviso aqui.

Grato Delivery-TI.
Responder

18/08/2014

Kelvin Ott

O mesmo nome que você usou na url você deve passar quando capturar o valor da request.

http://localhost:3718/redefinirPassword.aspx?PegarCodCliente=


Request.QueryString["PegarCodCliente"]
Responder

18/08/2014

Kelvin Ott

O mesmo nome que você usou na url você deve passar quando capturar o valor da request.

http://localhost:3718/redefinirPassword.aspx?PegarCodCliente=


Request.QueryString["PegarCodCliente"]
Responder

18/08/2014

Celiol.

O cara entes de mais nada obrigado pela ajuda. Porem esta com erro quando tento passar esse valor na variavel que criei esta:

//eu depurei o codigo e aqui nessa queryString ele tem o valo do codigo meio criptografado
// e aqui ele mostra o codigo mesmo se eu deixar o 0 ao invés do nome do metodo PegarCodCLiente
 
   if (!string.IsNullOrEmpty(Request.QueryString["PegarCodCliente"]))

  //ja aqui ele esta com o valor zero mesmo ajeitando com esse codigo que voce disse
   codCliente = int.Parse(Request.QueryString["PegarCodCliente"]);

   cliente = clientes.Find(cli => (cli.codCliente) == codCliente).First<CLIENTE>();


Sabe se tenho que fazer algum conversao ou minha atribuição esta errada?
Responder

18/08/2014

Joel Rodrigues

Verifique o que está sendo passado na URL.
Responder

19/08/2014

Kelvin Ott

Como o Joel disse, verifique o que está sendo passado na url.
Responder

19/08/2014

Celiol.

esta passando o codigo do cliente mas como disse assima ele passa meio criptografado nao passa um valor exato, por exemplo o codigo que estou trabalhando é 8 mas quando ele passa pela url ele transforma em (7b%07%) uma coisa assim nao me lembro exatamente, mas sei que esta correto pois como disse acima peguei esse valor e so para teste atribui ele em um label para mostra no email o codigo que esta vindo e era o 8 mesmo.

O devo fazer?
Responder

20/08/2014

Joel Rodrigues

Rapaz, pelo que vi no seu primeiro código, você não está atribuindo o PegarCodCliente à URL, veja:
corpo.Append(" Acesse este <a href='http://localhost:3718/redefinirPassword.aspx?PegarCodCliente='>link</a>.<br/>" );

Aqui você deveria usar o String.Format, assim como fez na linha logo abaixo:
corpo.Append(String.Format("<strong>Código:</strong><br/>", PegarCodCliente()));

Por isso o parâmetro PegarCodCliente na URL está com o valor literalmente.
Responder

20/08/2014

Celiol.

Ha voce diz pra eu usar o string format no proprio link enviado para o cliente?
Responder

20/08/2014

Celiol.

Joel eu tentei colocar esse stringFormat no link que esta com o metodo PegarCodCliente= mas ai cara ele nao envia o email, ou melhor ele demora muito para processar e ainda nao envia o email.
Responder

20/08/2014

Joel Rodrigues

Rapaz, o simples uso de String.Format não deveria influenciar em nada o envio do email.
Primeiramente é importante que você compreenda o erro. Você percebe que aquele na URL não está sendo substituído pelo código do cliente?
Então, é preciso montar a URL corretamente. Se você usou o String.Format na linha de baixo, não vejo por que não poderia usar na de cima, pois é uma simples função que retorna um string.
Responder

20/08/2014

Celiol.

Joel problema resolvido ja esqueci de postar aqui cara, mas ja resolvi o erro estava em uma aspa que coloquei pra um teste e esqueci de retirar.

grato DeliveryTI
Responder

20/08/2014

Joel Rodrigues

Show de bola. Que bom que resolveu.
Abraço e bons códigos.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar