Da quello che ho capito, non esiste un modo diretto per recuperare il valore utilizzando l'helper WebSecurity
.
Quando si crea un utente e conto del metodo restituisce il token di conferma:
string confirmationToken = WebSecurity.CreateUserAndAccount("tester", "test123", requireConfirmationToken: true);
È quindi inviare questo token (all'interno di un collegamento come parametro QueryString per esempio) per l'indirizzo di posta elettronica dell'utente. Quando l'utente fa clic sul collegamento, la vostra applicazione deve ricevere/leggere questo token e quindi si deve chiamare:
WebSecurity.ConfirmAccount(userName, confirmationToken);
Come lei ha ricordato si può ovviamente colpire il db scrivendo direttamente il proprio SQL o anche aggiungere il webpages_Membership
a un EntityFramewok EDMX modello ed interrogare la tabella direttamente:
var confirmationToken = Database.Memberships.Single(m => m.UserId == userId).ConfirmationToken;
Maggiori informazioni su questo:
Using the confirmation feature for ASP.NET Web Pages security
Get Account Confirmation Token?
fonte
2012-10-04 22:11:25
Grazie Leniel. Quello che hai descritto è la mia intenzione, ma a volte l'utente (per qualsiasi motivo) vuole avere l'email di conferma rinviata. Come implementeremmo una funzione di re-invio senza usare sql personalizzato per recuperare il messaggio di conferma originale? – 9999bao
In questo caso è possibile utilizzare l'helper Database qui descritto per recuperare il 'confirmationToken' per l'utente: http://www.mikesdotnetting.com/Article/156/WebMatrix-Database-Helpers-for-IN-Clauses –