ارسال پسورد تصادفی به ایمیل درASP.Net
سه شنبه 17 شهریور 1394در این مقاله آموزش می دهیم چگونه با استفاده از C# در ASP.Net پسورد تصادفی به ایمیل ارسال کنیم.
احتمالا در بسیاری از فرم های ثبت نام مشاهده نموده اید که تنها دو فیلد نام کاربری و ایمیل دارند و پسورد به ایمیل وارد شده ارسال می شود، در این مقاله می خواهیم چنین کاری انجام دهیم.
گام اول:
ویژوال استودیو را باز کرده و یک پروژه از نوع Empty Website با نام مناسب ایجاد می کنیم. در اینجا پروژه ای با نام randompass_demo ایجاد کردیم.
گام دوم:
در Solution Explorer روی پروژه راست کلیک کرده و با انتخاب Add و سپس New Item، یک Web form به نام Randompass_demo.aspx اضافه می کنیم. سپس به همین ترتیب، یک SQL Server Database در فولدر App_Data اضافه می کنیم.
طراحی دیتابیس:
گام سوم:
در Serveer explorer، روی نام دیتابیس ایجاد شده کلیک می کنیم و Tables و سپس Add New Table را انتخاب می کنیم و جدولی مانند جدول زیر با نام tbl_data ایجاد می کنیم.
گام چهارم:
فایل Randompass.aspx را باز کرده و طراحی برنامه کاربردی خود را به شکل زیر انجام می دهیم:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <style type="text/css"> .style1 { width: 196px; } .style2 { font-size: large; text-decoration: underline; text-align: left; color: #FF3300; } .auto-style1 { width: 196px; text-align: left; } .auto-style2 { width: 196px; text-align: left; height: 28px; } .auto-style3 { height: 28px; } </style> </head> <body> <form id="form1" runat="server"> <div> <table style="width:100%;" dir="rtl"> <tr> <td class="auto-style2"> <asp:Label ID="Label1" runat="server" ForeColor="Red" style="text-decoration: underline; font-weight: 700" Text="ارسال پسورد تصادفی به ایمیل"></asp:Label> </td> <td class="auto-style3"> </td> <td class="auto-style3"> </td> </tr> <tr> <td class="auto-style1"> نام کاربری:</td> <td> <asp:TextBox ID="TextBox1" runat="server" Width="207px"></asp:TextBox> </td> <td> </td> </tr> <tr> <td class="auto-style1"> آدرس ایمیل:</td> <td> <asp:TextBox ID="txtEmail" runat="server" Width="208px"></asp:TextBox> </td> <td> </td> </tr> <tr> <td class="auto-style1"> </td> <td> </td> <td> </td> </tr> <tr> <td class="auto-style1"> <asp:Label ID="lblMessage" runat="server"></asp:Label> </td> <td> <asp:Button ID="Button1" runat="server" onclick="Button1_Click1" Text="ثبت" /> </td> <td> </td> </tr> </table> </div> </form> </body> </html>
طراحی شما به شکل زیر خواهد بود:
گام پنجم:
سپس کد زیر را در randompass.aspx.cs می نویسیم:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Net; using System.Net.Mail; using System.Data; using System.Data.SqlClient; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { GeneratePassword(); } public string GeneratePassword() { string PasswordLength = "8"; string NewPassword = ""; string allowedChars = ""; allowedChars = "1,2,3,4,5,6,7,8,9,0"; allowedChars += "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,"; allowedChars += "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,"; char[] sep = { ',' }; string[] arr = allowedChars.Split(sep); string IDString = ""; string temp = ""; Random rand = new Random(); for (int i = 0; i < Convert.ToInt32(PasswordLength); i++) { temp = arr[rand.Next(0, arr.Length)]; IDString += temp; NewPassword = IDString; } return NewPassword; } protected void Button1_Click1(object sender, EventArgs e) { // to save the username and password in database SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"); SqlCommand cmd = new SqlCommand("insert into tbl_data(username,email) values (@username,@email)", con); cmd.Parameters.AddWithValue("username", TextBox1.Text); cmd.Parameters.AddWithValue("email", txtEmail.Text); con.Open(); int i = cmd.ExecuteNonQuery(); con.Close(); // to send the random password in email string strNewPassword = GeneratePassword().ToString(); MailMessage msg = new MailMessage(); msg.From = new MailAddress("info@barnamenevisan.org"); msg.To.Add(txtEmail.Text); msg.Subject = "پسورد تصادفی حساب کاربری شما"; msg.Body = "پسورد تصادفی:" + strNewPassword; msg.IsBodyHtml = true; SmtpClient smt = new SmtpClient(); smt.Host = "smtp.gmail.com"; System.Net.NetworkCredential ntwd = new NetworkCredential(); ntwd.UserName = "info@barnamenevisan.org"; //Your Email ID ntwd.Password = ""; // Your Password smt.UseDefaultCredentials = true; smt.Credentials = ntwd; smt.Port = 587; smt.EnableSsl = true; smt.Send(msg); lblMessage.Text = "ایمیل با موفقیت ارسال شد"; lblMessage.ForeColor = System.Drawing.Color.ForestGreen; } }
سپس متدی با نام ()GeneratePassword ایجاد کرده و آن را در این قسمت برای ارسال ایمیل فراخوانی می کنیم، زمانی که روی دکمه ثبت کلیک کنیم، کد بالا نام کاربری و ایمیل را ذخیره کرده و پسورد مربوطه را به ایمیل وارد شده ارسال می کند.
در اینجا، ما نام کاربری را "Barnamenevisan" و ایمیل "info@barnamenevisan.org" را وارد کرده ایم، که در دیتابیس ذخیره خواهد شد و پسورد تولید شده به ایمیل ارسال خواهد شد.
پسورد تولید شده:
داده های ذخیره شده در دیتابیس:
- ASP.net
- 2k بازدید
- 5 تشکر