mercoledì 7 settembre 2011

How To: Membership Get Password

Ecco un'altra bella prova complicata... come ottenere la passwrod di un utente ?
Lo scopo per cui voler far ciò devo essere onesto lo lascio a voi.

Banalmente si ottiene l'utente, e di contro si sfrutta il metodo GetPassword

MembershipUser mb = Membership.GetUser(MembershipUserKey);
string Password = mb.GetPassword();


Tuttavia questo potrebbe portare a due tipi di eccezione:

"This Membership Provider has not been configured to support password retrieval"

il che implica l'assenza di un paio di voci nel web.config proprio nel vostro
provider.

Provate a verificare gli attributi:
-enablePasswordRetrieval
-requiresQuestionAndAnswer
-passwordFormat

<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider"
connectionStringName="..."
minRequiredPasswordLength="4"
minRequiredNonalphanumericCharacters="0"
type="System.Web.Security.SqlMembershipProvider"
applicationName="/"
enablePasswordRetrieval="true"
requiresQuestionAndAnswer="false"
passwordFormat="Encrypted"
requiresUniqueEmail="false" />
</providers>
</membership>


Se questo basta avete risolto... tuttavia sono quasi sicuro che si verificherà
una seconda eccezione:

"Hashed passwords cannot be decoded"

Il che implica due cose
a) non avete impostato la Machine Key Trovate il generatore qui!

Questa chiave dovrete metterla nel web.config sotto system.web

Se tutto funziona avete risolto... anche se sono convinto che si verificherà ancora...

Questo processo funziona con le password che sono state create dopo l'attuazione del processo stesso.

Ossia, in questo modo state indicando a Membership una modalità di generazione della
password ( è ovvio ) che tutto ciò che è avvenuto prima non sia conforme a questo processo, ( perchè chiaramente non era impostato ).

Nessun commento: