Array
(
)

Pegar codigo pela URL

Delivery-ti
|
MVP
Pontos: 525
    18 ago 2014

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.
#Código

                       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={0}'>link</a>.<br/>" );

                        corpo.Append(String.Format("<strong>Código:{0}</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.
#Código
    //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

Kelvin Ott
   - 18 ago 2014

Cara, onde esta #Código

Request.QueryString["0"]
não deveria estar #Código
Request.QueryString["PegarCodCliente"]
?

0
|
0

Delivery-ti
|
MVP
Pontos: 525
    18 ago 2014

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.

0
|
0

Kelvin Ott
   - 18 ago 2014

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

#Código

http://localhost:3718/redefinirPassword.aspx?PegarCodCliente={0}


#Código
Request.QueryString["PegarCodCliente"]

0
|
0

Kelvin Ott
   - 18 ago 2014

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

#Código

http://localhost:3718/redefinirPassword.aspx?PegarCodCliente={0}


#Código
Request.QueryString["PegarCodCliente"]

0
|
0

Delivery-ti
|
MVP
Pontos: 525
    18 ago 2014

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

#Código

//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?

0
|
0

Joel Rodrigues
   - 18 ago 2014

Verifique o que está sendo passado na URL.

0
|
0

Kelvin Ott
   - 19 ago 2014

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

0
|
0

Delivery-ti
|
MVP
Pontos: 525
    19 ago 2014

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?

0
|
0

Joel Rodrigues
   - 20 ago 2014

Rapaz, pelo que vi no seu primeiro código, você não está atribuindo o PegarCodCliente à URL, veja:
#Código

corpo.Append(" Acesse este <a href='http://localhost:3718/redefinirPassword.aspx?PegarCodCliente={0}'>link</a>.<br/>" );

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

Por isso o parâmetro PegarCodCliente na URL está com o valor {0} literalmente.

0
|
0

Delivery-ti
|
MVP
Pontos: 525
    20 ago 2014

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

0
|
0

Delivery-ti
|
MVP
Pontos: 525
    20 ago 2014

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

0
|
0

Joel Rodrigues
   - 20 ago 2014

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 {0} 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.

0
|
0

Delivery-ti
|
MVP
Pontos: 525
    20 ago 2014

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

0
|
0

Joel Rodrigues
   - 20 ago 2014

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

0
|
0