2012-09-23 12 views
6

Estoy intentando acceder a las páginas web_Mesa de membresía (estoy usando SimpleMembership) para recuperar la cuenta ConfirmationToken.MVC4: ¿Qué entidad representa la tabla de páginas web? Membresía

¿Cómo accedo a esta tabla desde mi modelo/controlador/DAL?

Lo único que se me ocurre es ejecutar SQL puro desde mi código para obtener este valor, pero eso no parece ser lo correcto, ni elegante.

Respuesta

2

Por lo que entiendo, no hay forma directa de recuperar el valor utilizando WebSecurity ayudante.

Cuando se crea una cuenta de usuario y el método devuelve el token de confirmación:

string confirmationToken = WebSecurity.CreateUserAndAccount("tester", "test123", requireConfirmationToken: true); 

A continuación, envía esta señal (dentro de un enlace como un parámetro de cadena de consulta por ejemplo) a la dirección de correo electrónico del usuario. Cuando el usuario hace clic en el enlace, su aplicación debe obtener/leer esta muestra y luego se debe llamar:

WebSecurity.ConfirmAccount(userName, confirmationToken); 

Como se ha mencionado que por supuesto puede golpear la db escribir directamente su propio SQL o incluso añadir el webpages_Membership a una EntityFramewok EDMX modelo y consultar la tabla directamente:

var confirmationToken = Database.Memberships.Single(m => m.UserId == userId).ConfirmationToken; 

Más sobre esto:

Using the confirmation feature for ASP.NET Web Pages security

Get Account Confirmation Token?

+0

Gracias Leniel. Lo que describiste es mi intención, pero a veces el usuario (por el motivo que sea) quiere que se reenvíe el correo electrónico de confirmación. ¿Cómo implementaríamos una función de reenvío sin usar sql personalizado para recuperar la confirmación original? – 9999bao

+0

En este caso, puede usar el Ayudante de base de datos que se describe aquí para recuperar 'confirmToken' para el usuario: http://www.mikesdotnetting.com/Article/156/WebMatrix-Database-Helpers-for-IN-Clauses –

Cuestiones relacionadas