asp.net-mvc-4 security simplemembership

ASP.Net MVC 4 y WebSecurity-Confirmación de registro de usuario a través de correo electrónico



asp.net-mvc-4 simplemembership (1)

En realidad, SimpleMembership está cableado para admitir una confirmación de 2 pasos. Ve a esta publicación del blog para ver cómo extiendes el perfil de usuario para incluir una propiedad de correo electrónico. Modificar la vista de registro para capturar el correo electrónico. Ahora, cuando cree el nuevo usuario, use CreateUserAndAccount esta manera.

string confirmationToken = WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new{Email = model.Email}, true);

Ahora, simplemente envíe el mensaje de confirmaciónToken en un correo electrónico al usuario utilizando su método de correo electrónico favorito para ASP.NET MVC. Me gusta Postal porque puedes usar el motor Razor para generar el cuerpo de tu correo electrónico. El cuerpo del correo electrónico contendrá un enlace a una nueva página web (controlador / acción) que tiene confirmatedToken como id ({controller} / {action} / {id}). Cuando el usuario haga clic en el enlace, su código realizará la confirmación utilizando WebSecurity.ConfirmAccount . Eso es todo lo que se requiere para agregar confirmación por correo electrónico a su aplicación MVC 4. Aquí hay una guía paso a paso para agregar confirmación por correo electrónico a MVC 4 .

Estoy utilizando la plantilla de aplicación de Internet predeterminada del proyecto ASP.Net MVC 4. La acción de registro en el controlador de cuenta es así:

[HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { // Attempt to register the user try { WebSecurity.CreateUserAndAccount(model.UserName, model.Password); WebSecurity.Login(model.UserName, model.Password); return RedirectToAction("Index", "Home"); } catch (MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); } } // If we got this far, something failed, redisplay form return View(model); }

Sin embargo, esto no proporciona ninguna funcionalidad lista para usar para usar la dirección de correo electrónico para el registro y los pasos para enviar el correo electrónico para confirmación y activación de la cuenta. Veo que la plantilla de sitio inicial de WebMatrix utiliza WebSecurity y proporciona la funcionalidad que estoy buscando, pero no sigue el patrón estándar de MVC. Podría combinar ambos enfoques para llegar a una solución compatible con MVC 4, pero estoy buscando un código listo para usar para ahorrar tiempo . Cualquier buena muestra o punteros son muy apreciados. Gracias.