Responder 
 
Avaliação do Tópico:
  • 0 Votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
FancyURLopener - autenticação
12/08/2006, 16:45
Resposta: #1
FancyURLopener - autenticação
Código:
class MyURLOpener(FancyURLopener):
    
    def setUser(self, user):
        self.__user = user
        
    def setPasswd(self, passwd):
        self.__passwd = passwd

    def prompt_user_passwd(self, host, realm):
        return (self.__user, self.__passwd)

O método prompt_user_passwd é chamado para pegar a senha requerida para o endereço onde eu estou me conectando.

O problema é que eu não tenho como saber quando ele está pedindo a senha pra conectar normalmente ou quando ele ta pedindo porque a senha anterior era errada. Preciso saber quando a senha é errada e pedir ao usuário denovo, ao invés de ficar enviando sempre a mesma senha (como é o que acontece ai, ele fica sempre chamando o método prompt_user_passwd e mandando a senha errada várias vezes).

Alguém sabe?
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
12/08/2006, 17:26
Resposta: #2
 
posso lhe responder na logica somente.. não conheço python, estudo Java.

tive o mesmo problema que me foi resolvido com if's

faça o comando manualmente, pegue o erro que da para uma senha errada, coloque em um if(variaveldeerro = "erro") {

esse processo não é muito bom porque deixa vc preso a apenas uma opção de erro. ainda nao vi uma forma melhor.

desculpa se falei bobagem Sorrisão

http://blog.forumdebian.com.br/kayohf/
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
12/08/2006, 21:56
Resposta: #3
 
Olá amigo,

Obrigado pela atenção. Mas essa solução não me serve, pois o problema é que não dá erro nenhum. Ele simplesmente chama esse método novamente, não tenho como saber se ele ta chamando porque vai conectar normalmente ou se ele tá chamando porque a senha era errada.

Vou explicar melhor como é:
Quando o script executa, EU peço ao usuário login/senha pro script conectar de tempos em tempos numa página e usar esse login/senha pra autenticar.
Em seguida eu executo:

Código:
opener = MyURLOpener()
f = opener.open("http....")

O que se espera a partir daí, é que ele conecte e autentique. Pra isso ele usa o método prompt_user_passwd que eu reescrevi para ele fornecer a senha digitada pelo usuário.

O problema é quando a senha que o usuário forneceu é errada, e ele continua reconectando e chamando o mesmo método, que vai fornecer a mesma senha errada. E eu não sou avisado que a senha estava errada.

Acho que deu pra esclarecer melhor :>
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
13/08/2006, 00:25
Resposta: #4
 
bom, pode-se resolver então para você, apartir do momento que vc executa a função para colocar a senha, gravar em uma variavel que a cada vez que ela é executada adicione +1, então você pode fazer:

if (variaveldevezes = 2) {
...("vc ta fazendo algo de errado)
}

soluciona, temporariamente, seu problema eu acho.

http://blog.forumdebian.com.br/kayohf/
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
13/08/2006, 00:43
Resposta: #5
 
Olá amigo,

Agradeço mais uma vez a atenção, porém isso não resolve.

O código executa periodicamente, então a variável ter o valor 2 não indicaria que houve erro, e sim que o código já executou 2 vezes.

Enfim, eu bem que poderia fazer alguma gambiarra desse tipo, mas estou procurando a maneira correta. Eu não acredito que na lib do python não exista uma forma de tratar essa situação.

[]s
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
13/08/2006, 10:57
Resposta: #6
 
beleza então, sou um entusiasta da programação e gosto de conversar com programadores.

mas,


Citar:O código executa periodicamente, então a variável ter o valor 2 não indicaria que houve erro, e sim que o código já executou 2 vezes.

é para isso mesmo, pois o if (variaveldevezes = 2) { identificaria. é um processo manual.

boa sorte, falo.

http://blog.forumdebian.com.br/kayohf/
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
Responder 


Ir ao Fórum:


Usuários visualizando este tópico: 1 Visitantes

Entre em Contato | Fórum Debian | Voltar ao Topo | Voltar ao Conteúdo | Modo Leve (Arquivo) | Feeds RSS