public ActionResult SendMail([Bind(Include = "sender, receiver, MailTitle, MailBody")] MailViewModel mailVM) { if (!ModelState.IsValid) { ModelState.AddModelError("", "如果您的信箱輸入正確,已經發送驗證信至您信箱"); //安全問題就算錯也報這樣的提示 return(RedirectToAction("FinishedSending", "ForgotPassword")); } MemberViewModel currentMember = _api.GetMember(p => p.MemberRegEmail == mailVM.receiver); if (currentMember == null) { ModelState.AddModelError("", "如果您的信箱輸入正確,已經發送驗證信至您信箱"); //安全問題就算錯也報這樣的提示 return(RedirectToAction("FinishedSending", "ForgotPassword")); } var outputCode = CreatePasswordResetHmacCode(currentMember.MemberId); var link = Request.Url.Scheme + "://" + Request.Url.Authority + @Url.Action("CheckMemberUrl", "ForgotPassword", new { forgotpw = outputCode }); //取Email template string returnData = getEmailData(); //把該帶的資料塞進 template string finalReturnData = setReplacedEmailData(returnData, link, currentMember.MemberName); var msg = new MailMessage("*****@*****.**", currentMember.MemberRegEmail, "集資車車 - 找回密碼", finalReturnData); msg.IsBodyHtml = true; //mailVM.receiver = currentMember.MemberRegEmail; //mailVM.sender = "*****@*****.**"; //mailVM.MailTitle = "集資車車 - 找回密碼"; //mailVM.MailBody = link; string id = WebConfigurationManager.AppSettings["GmailId"]; string password = WebConfigurationManager.AppSettings["GmailPassword"]; var client = new SmtpClient("smtp.gmail.com", 587) { Credentials = new NetworkCredential(id, password), EnableSsl = true, }; //client.Send(mailVM.sender, mailVM.receiver, mailVM.MailTitle, mailVM.MailBody); client.Send(msg); return(RedirectToAction("FinishedSending", "ForgotPassword")); }
public ActionResult Login(MemberViewModel input) { //if (!ModelState.IsValid) //{ // return RedirectToAction("LoginFail", "Member"); //} //先抓出email MemberViewModel memberinfo = _api.GetMember(x => x.MemberRegEmail == input.MemberRegEmail); if (memberinfo == null) { return(RedirectToAction("LoginFail", "Member")); } //如果是假資料 else if (memberinfo.MemberId <= 17) { Session["Permission"] = memberinfo.Permission; Session["Member"] = memberinfo; } else { //確認 hashcode bool verify = _memberservice.VerifyPasswordWithHash(input); if (verify == false) { ModelState.AddModelError("NotFound", "帳號或密碼輸入錯誤"); return(RedirectToAction("LoginFail", "Member")); } Session["Permission"] = memberinfo.Permission; Session["Member"] = memberinfo; } //1.Create FormsAuthenticationTicket var ticket = new FormsAuthenticationTicket( version: 1, name: "", //可以放使用者Id issueDate: DateTime.UtcNow, //現在UTC時間 expiration: DateTime.UtcNow.AddMinutes(30), //Cookie有效時間=現在時間往後+30分鐘 isPersistent: false, // 是否要記住我 true or false userData: "", //可以放使用者角色名稱 cookiePath: FormsAuthentication.FormsCookiePath); //2.Encrypt the Ticket var encryptedTicket = FormsAuthentication.Encrypt(ticket); //3.Create the cookie. var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); Response.Cookies.Add(cookie); //4.Redirect back to original URL. var url = FormsAuthentication.GetRedirectUrl("", false); //5.Response.Redirect return(Redirect(url)); }