首先我很新的MVC和我試圖實現對MVC 4.我該使用這種技術張貼在這裏實施的密碼恢復功能:Where to find C# sample code to implement password recovery in ASP .NET MVC2MVC 4密碼恢復
我理解它的工作方式然而缺少一個我現在嘗試實施的幫助類。我正在談論的類:NotificationsHelper.SendPasswordRetrieval(model.Email,this.ControllerContext);
控制器上的RetrievePassword acction控制器具有參數PasswordRetrievalModel模型。我想這是一個類模型,連接到數據庫和實現主題之間的一些屬性是一個字符串屬性,稱爲電子郵件。它是否正確?
比,NotificationsHelper.SendPasswordRetrieval(model.Email,this.ControllerContext);靜態類實現此靜態方法SendPasswordRetrievla 2個paramateres:model.Email是字符串屬性frrom的PasswordRetrievalModel模型類,所以這將是用戶的電子郵件,我們將發送電子郵件。比第二個參數是this.ControllerContext。這個參數的含義是什麼值將包含哪些值發送到SendPasswordRetrieval方法?
比我實現了類是這樣的:
public static class NotificationsHelper
{
public static bool SendPasswordRetrieval(string emailAddress, ControllerContext ctx)
{
try
{
StringBuilder emailMessage = new StringBuilder();
emailMessage.Append("<br />");
emailMessage.Append("Hello,");
emailMessage.Append("You have requested a password recovery.");
emailMessage.Append("<br />");
emailMessage.Append("Please click the link below to change your password: <br />");
emailMessage.Append("<br />");
emailMessage.Append(string.Format("http://www.example.com/Account/Validate?email={0}&token={1}", emailAddress, "**345982374532453435345**"));
emailMessage.Append("<br />");
MailMessage email = new MailMessage();
email.From = new MailAddress("[email protected]");
email.To.Add(new MailAddress(emailAddress));
email.Subject = "domain.com Password Recovery";
email.Body = emailMessage.ToString();
email.IsBodyHtml = true;
SmtpClient smtpServer = new SmtpClient();
smtpServer.Host = "smtp.gmail.com";
smtpServer.Port = 587;
smtpServer.Credentials = new NetworkCredential("username", "password");
smtpServer.EnableSsl = true;
smtpServer.Send(email);
return true;
}
catch (Exception e)
{
Trace.WriteLine(String.Format("Failure to send email to {0}.", emailAddress));
return false;
}
}
}
在上面的代碼我列舉其中的URL被格式化行了,我該如何把有使用的代碼@agarcian令牌提供?令牌是否來自第二個參數ControllerContext?如果是,我怎麼從那裏得到它?