Criptare password email del mittente del controllo PasswordRecovery

mercoledì 02 settembre 2009 - 16.01

Anonimo Profilo | Senior Member

Eccomi con un altro problema.
Come ben sapete, per il controllo PasswordRecovery, cioè quel controllo che ti permette di ricevere una nuova password tramite mail, si ha bisogno di una mail per il mittente. Beh fin lì no problems.
Sono riuscito a settare la mail del mittente con tanto di password e smtp.
Il problema è che vorrei criptare questa password, che si tiene nel web.config:

<system.net> <mailSettings> <smtp from="mail"> <network host="smtp" password="password" userName="mail"/> </smtp> </mailSettings> </system.net>

Ho già provato a criptarla col metodo di criptazione delle connectionStrings secondo quest'articolo: http://aspnet.html.it/articoli/leggi/1687/criptare-le-stringhe-di-connessione/ ma senza risultati positivi (forse perché vale solo per la sessione connectionStrings del web.config).
Come faccio?
--------------------------------------------------------------------------

Allan Felipe

Gluck74 Profilo | Guru

non hai postato il codice, quindi non so cosa hai scritto, comunque penso di aver capito il problema.
Se hai seguito il codice preso dall'articolo che hai postato, sicuramente tu hai scritto una riga del genere:

// specifichiamo la sezione da criptare ConfigurationSection sezioneProt = WebConfig.Sections["mailsettings"];

invece le sezioni recuperabili con "WebConfig.Sections" sono limitate.
Pre prendere una sezione specifica, devi usare questo metodo e questa sintassi:

// specifichiamo la sezione da criptare ConfigurationSection sezioneProt = WebConfig.GetSection("system.web/mailsettings/smtp/network");

Anonimo Profilo | Senior Member

Ho postato due volte per sbaglio.

Anonimo Profilo | Senior Member

Ok metto il codice. Tra l'altro anche facendo nel modo che mi hai detto mi dà lo stesso errore.

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

e l'errore è:

"Riferimento a un oggetto non impostato su un'istanza di oggetto."

e punta sull'if.
--------------------------------------------------------------------------

Allan Felipe

Gluck74 Profilo | Guru

se l'errore è sull'istruzione if, probabilmente "sezioneProt1" è null. controlla.

in questo caso l'istruzione WebConfig.GetSection("system.net/mailSettings/smtp/network") non è corretta.
prova a cambiare la stringa "system.net/mailSettings/smtp/network", facendo alcune prove, ad esempio
"system.net/mailSettings/smtp"

metti un break point sull'istruzione if e controlla che "sezioneProt1" venga valorizzato facendo le prove come ti ho detto

fammi sapere.
ciao

Anonimo Profilo | Senior Member

Esattamente come hai detto. Adesso funziona. Anche la decriptazione.
Grazie!
--------------------------------------------------------------------------

Allan Felipe
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5