2010-05-20 27 views
0

Je le vois partout, pourtant, je ne pouvais pas trouver un exemple à ce sujet (peut-être que je ne connais pas la bonne formulation), j'essaie de construire en utilisant ASP .Net MVC2 (mais n'importe quel exemple sur ASP. Net serait également utile) un processus qui enverra un lien à l'utilisateur à la fin du processus d'inscription pour lui permettre de confirmer son inscription. En outre, un processus similaire pour laisser l'utilisateur à réinitialiser son mot de passe, avec le "mot de passe oublié" typique et envoyer un lien/URL afin que l'utilisateur peut cliquer et taper un nouveau mot de passe. Quelqu'un peut-il m'aider soit à trouver un exemple ou au moins pour me faire savoir comment "google" il?Comment envoyer un lien/url pour confirmer l'enregistrement de l'utilisateur et/ou la réinitialisation/récupération du mot de passe en utilisant ASP.Net MVC2?

Merci, Mark

Répondre

0

Pour le mot de passe oublié, vous pouvez faire une vue comme celui-ci

<% using (Html.BeginForm()) {%> 
    <%: Html.ValidationSummary(true)%> 

<p><%: ViewData["Error"] %></p> 
<p> Have you forgotten you password? No problem!</p> 

<div class="editor-label"> 
    <%: Html.Label("Fill in your username") %> 
</div> 
<div class="editor-field"> 
    <%: Html.TextBox("userName") %> 
</div> 

<p> and <input type="submit" value="click here" /> to reset your password.</p> 

<% } %> 

et en tant que contrôleur (d'abord faire un modèle de la aspnetdb (si vous ne voyez pas il appuie sur la 'afficher tous les fichiers de bouton))

Ce doit être placé juste après la définition du contrôleur

aspnetdbEntities aspnetdb = new aspnetdbEntities(); 

suit ensuite cette

public ActionResult ForgottenPassword() 
    { 
     return View(); 
    } 

[HttpPost] 
public ActionResult ForgottenPassword(FormCollection formValue) 
{ 
    var userName = formValue["userName"]; 
    try 
     { 
      var useraccount = aspnetdb.aspnet_Users.Single(c => c.UserName == userName); 
      var fromAddress = "put an email-address"; 

      var message = new MailMessage(fromAddress, user.Email) 
      { 
       Subject = "", 
       Body = "a link to a controller that lets the user put in a 
         new password and then save that password to the aspnetdb." 
         (that controller will most likley require a username) 
         "or a link with a new random password in it tht you have put 
         as his password like this:" 
         useraccount.aspnet_Membership.Password = "random password"; 
         aspnetdb.SaveChanges; 

      }; 

      var client = new SmtpClient("smtpServerName"); 
      client.Send(message); 

      return View(); 
     } 

     catch 
     { 
      ViewData["Error"] = "Please give up an existing username"; 
      return View(); 


     } 
    } 

J'espère que cette réponse a été utile.