teo prome ha scritto:
non ho capito...
devi far cambiare obbligatoriamente la password agli utenti se scaduta?
Anche, ma inizialmente devo controllare se è il suo primo login e controllo questo con la data di creazione e quella dell'ultimo cambio password. Se le date sono uguali, allora è al primo login.
allora è corretto farlo al logging e farlo come ti ho detto è il modo corretto, nel db delle membership di default hai LastPasswordChangedDate che è il dato che ti serve
Infatti faccio questo e nel caso sono nella condizione di cambio, eseguo un Server.Tranfer alla pagina di cambio password.
Qui avevo fatto un errore: questa pagina era dentro l'area riservata, ecco perchè comunque avrei dovuto loggarmi...
perchè devi mettere il controllo in ogni pagina?
se hai implementato membership e ruoli avrai una pagina con il controllo di login o uno tuo custom, le pagine accessibili solo dopo aver effettuato il login saranno protette a web.config e se l'utente tenta l'accesso verrà rimandato alla pagina iniziale (ma questo se hai configurato tutto correttamente)
Perchè avevo sbagliato la logica... Prima la pagina di cambio password era nell'area riservata, quindi dovevo per forza loggarmi. Adesso è nella root del sito.
Inoltre ho spostato tutta la logica di controllo (primo login, password expired, ecc..) nell'evento LogginIn (e non in LoggedIn) della lagina di login.
inoltre
Questo perchè ho notato che fin che non mi loggo, non posso utilizzare le Membership per controllare se lo username è presente o meno sul db
questo non è corretto, hai il metodo
Membership.FindUsersByName
http://msdn.microsoft.com/en-us/library/sk59azhc.aspx
ma dalla tua ultima frase non comprendo più cosa vuoi fare veramente
Ecco, avevo dimenticato che non utilizzavo Membership.FindUsersByName nel LogginIn ma semplicemente Membership.GetUser(nomeutente).
Adesso ho un altro problemino: con il Server.Transfer vado alla pagina di cambio password (che utilizza il controllo asp:ChangePassword ,a ma ho un errore nel cambio. Credo che sia perchè il controllo asp:ChangePassword non sappia su quale utente eseguire il cambio....
Devo impostare la proprietà UserName del controllo asp:ChangePassword ?