Example #1
0
        public ActionResult PasswordReminder(User c_user)
        {
            int userid = userDto.GetId(c_user.Email);

            if (userid != 0)
            {
                char[] chars = new char[62];
                chars =
                    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890".ToCharArray();
                byte[] data = new byte[1];
                RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider();
                crypto.GetBytes(data);
                data = new byte[20];
                crypto.GetBytes(data);
                StringBuilder result = new StringBuilder(20);
                foreach (byte b in data)
                {
                    result.Append(chars[b % (chars.Length)]);
                }
                userDto.SetNewPassword(userid, result.ToString());
                System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(
                    "*****@*****.**",
                    c_user.Email,
                    "Wygenerowane nowe hasło",
                    "Twoje nowe hasło do logowania to: ");
                string body = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
                body += "<HTML><HEAD><META http-equiv=Content-Type content=\"text/html; charset=utf-8\">";
                body += "</HEAD><BODY><DIV><FONT face=Arial color=#EB7261 size=4>Twoje nowe haslo logowania to:" + "</br>" + result.ToString();
                body += "</FONT></DIV></BODY></HTML>";
                ContentType mimeType = new System.Net.Mime.ContentType("text/html");
                // Add the alternate body to the message.

                AlternateView alternate = AlternateView.CreateAlternateViewFromString(body, mimeType);
                message.AlternateViews.Add(alternate);
                SmtpClient smtp = new SmtpClient();
                smtp.Port                  = 587;
                smtp.EnableSsl             = true;
                smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;
                smtp.UseDefaultCredentials = false;
                smtp.Credentials           = new NetworkCredential("*****@*****.**", "geodeta123");
                smtp.Host                  = "smtp.gmail.com";
                smtp.Send(message);

                return(this.RedirectToAction("SuccessGeneratePassword", "User"));
            }
            ModelState.AddModelError(string.Empty, "Nie ma zarejestrowanego użytkownika o podanym adresie e-mail");
            return(this.View());
        }