Как отправить ссылку / URL для подтверждения регистрации пользователя и / или сброса / восстановления пароля с помощью ASP.Net MVC2? - PullRequest
0 голосов
/ 20 мая 2010

Я вижу это повсюду, но я не смог найти ни одного примера по этому поводу (возможно, я не знаю правильную формулировку), я пытаюсь построить с использованием ASP .Net MVC2 (но любой пример только на ASP Также будет полезен .Net) процесс, который отправит пользователю ссылку в конце процесса регистрации, чтобы он мог подтвердить свою регистрацию. Кроме того, аналогичный процесс позволяет пользователю сбросить свой пароль, используя типичный «забытый пароль» и отправить ссылку / URL, чтобы пользователь мог щелкнуть и ввести новый пароль. Может ли кто-нибудь помочь мне найти пример или хотя бы дать мне знать, как его "погуглить"?

Спасибо, Mark

1 Ответ

0 голосов
/ 10 декабря 2010

Для забытого пароля, вы можете сделать вид, подобный этому

<% 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> 

<% } %>

и в качестве контроллера (сначала создайте модель из aspnetdb (если ее не видите, нажмите кнопку «Показать все файлы»))

Это должно быть помещено сразу после определения контроллера

aspnetdbEntities aspnetdb = new aspnetdbEntities();

Затем следует

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();


        }
    }

Надеюсь, этот ответ был полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...