mostafa_sgh
یک شنبه 05 آبان 1387, 17:25 عصر
سلام به همه دوستان گرامی
این مقاله بنا به درخواست دوستان تهیه و در اینجا گرد آورده شده است .
با نظراتتان ما را در بهبود فهم و منطق آن کمک کنید.
امیدواریم مورد پسندتان قرار بگیرد ...
طرز تهیه Activation Register Account برای شام :لبخند:
1 . ابتدا مراحل ثبت نام کاربر را به اتمام برسانیم .( نام صفحه Register.aspx )
2 . احتیاج به 1 یا 2 فیلد بسته بنا به سلیقه داخل دیتابیستون داریم .
الف ) فیلدی به نام Status از نوع Bit ( بولین ) که باید در موقع ثبت مقدارش False باشد
ب ) فیلدی برای کلید Active به نام ActiveKey از نوع varchar(40) ( در اینجا کلید توسط GUID تولید می شود )
توضیح : این کلید میتواند Email و یا نام کاربری و یا یک کلید ساخت خودتون( Guid , یا تمام الگوریتم هائی که برای تولید کلید به کار میرود ) باشد.
3 . بعد از ساخت فیلد ها باید این کلید رو ساخته و در دیتابیس ذخیره و در ایمیل حاوی اطلاعات مربوط به Active به عنوان یک پارامتر در یک لینک برای کاربر ارسال می کنیم .
Namespaces :
System.Data.SqlClient
System.Net.Mail
protected void btnRegister_Click(object sender, EventArgs e)
{
// Create Activation Key & Url
string accountKey = Guid.NewGuid().ToString().Replace("-", string.Empty).ToUpper();
string activeLink = "http://www.mysite.com/ActiveUser.aspx?uid=" + accountKey;
// Insert Account Info in the database with accountkey
int result = -1;
SqlConnection sp_conn = new SqlConnection(connectionString);
SqlCommand sp_comm = new SqlCommand();
sp_comm.CommandType = CommandType.Text;
sp_comm.Connection = sp_conn;
sp_comm.CommandText = "Insert Into tblUsers VALUES(@Name,@Email,@ActiveKey,@Status)";
sp_comm.Parameters.AddWithValue("Name", txtName.Text);
sp_comm.Parameters.AddWithValue("Email", txtEmail.Text);
sp_comm.Parameters.AddWithValue("ActiveKey", accountKey);
sp_comm.Parameters.AddWithValue("Status", false);
try
{
sp_conn.Open();
result = sp_comm.ExecuteNonQuery();
sp_conn.Close();
}
catch
{
if (sp_conn != null)
sp_conn.Close();
}
finally
{
switch (result)
{
case 1:
ShowResult("Create User Successfully .");
SendEmail(txtEmail.Text,txtName.Text,activeLink);
break;
case -1:
case 0 :
ShowResult("Create User Failed !");
break;
}
}
}
private void SendEmail(string email,string name,string key)
{
// Send Email to user's Email Address with active link
try
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress("info@domain.com", "My site Registratration");
msg.To.Add(new MailAddress(email, name, Encoding.UTF8));
msg.Subject = "My site - Register Account";
msg.IsBodyHtml = true;
msg.DeliveryNotificationOptions = DeliveryNotificationOptions.None;
msg.Priority = MailPriority.Normal;
msg.ReplyTo = new MailAddress("support@domain.com", "My site Support Systems");
StreamReader sr = new StreamReader(Server.MapPath("~/ActiveMail.htm"));
string temp = sr.ReadToEnd();
temp = temp.Replace("[###Name###]", name).Replace("[###Url###]", key);
msg.Body = temp;
SmtpClient smtp = new SmtpClient("mail.domain.com");
System.Net.NetworkCredential perm = System.Net.NetworkCredential("account@domain.com", "password");
smtp.Credentials = perm;
smtp.Send(msg);
ShowResult("Send Email Success !");
}
catch
{
ShowResult("Send Email Failed !");
}
}
private void ShowResult(string p)
{
lblStatus.Text = p;
}
4 . در این مرحله کاربر بر روی لینکی که تولید کردیم، کلیک میکند و به صفحه ActiveUser.aspx وارد میشود.
توضیح : در این صفحه پارامتر uid رو چک میکنیم و بعد در صورت مثبت بودن :
protected void Page_Load(object sender, EventArgs e)
{
// Check this Key with your database
string key = Request.QueryString["uid"];
if (!string.IsNullOrEmpty(key))
{
int result = -1;
SqlConnection sp_conn = new SqlConnection(connectionString);
SqlCommand sp_comm = new SqlCommand();
sp_comm.CommandType = CommandType.Text;
sp_comm.Connection = sp_conn;
sp_comm.CommandText = "Update tblUsers Set Status = 1 Where( Status = 0 ) And ( ActiveKey = @ActiveKey )";
sp_comm.Parameters.AddWithValue("ActiveKey", key);
try
{
sp_conn.Open();
result = sp_comm.ExecuteNonQuery();
sp_conn.Close();
}
catch
{
if (sp_conn != null)
sp_conn.Close();
}
finally
{
switch (result)
{
case 1:
ShowResult("Active User Successfully .");
break;
case -1:
case 0:
ShowResult("Invalid Activation Key !");
break;
}
}
}
}
در صورتی که کلید صحیح و قبلاً فعال نشده بود ، فیلد Status کاربر مربوطه را True میکنیم.
فایل ActiveMail.htm
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>.:: My Site - Active Register Account ::.</title>
</head>
<body>
<div align="center">
<div style="width:90%" align="left">
Dear [###Name###]<br/>
<br/>
Thanks for using this site<br/>
<br/>
To continue registering account , you should active it .<br/>
Click this link below to Active your account :<br/>
<br/>
<a href="[###Url###]">[###Url###]</a></div>
</div>
</body>
</html>
حالا غذا آماده است ، بچه ها رو صدا کنید بیان شام بخورن !!!!!!
بچه ها شرمنده .....
غذا یه خورده بی نمکه !
منتظر نظزات و پیشنهادات برای بهبود این مقاله هستیم ....
این مقاله بنا به درخواست دوستان تهیه و در اینجا گرد آورده شده است .
با نظراتتان ما را در بهبود فهم و منطق آن کمک کنید.
امیدواریم مورد پسندتان قرار بگیرد ...
طرز تهیه Activation Register Account برای شام :لبخند:
1 . ابتدا مراحل ثبت نام کاربر را به اتمام برسانیم .( نام صفحه Register.aspx )
2 . احتیاج به 1 یا 2 فیلد بسته بنا به سلیقه داخل دیتابیستون داریم .
الف ) فیلدی به نام Status از نوع Bit ( بولین ) که باید در موقع ثبت مقدارش False باشد
ب ) فیلدی برای کلید Active به نام ActiveKey از نوع varchar(40) ( در اینجا کلید توسط GUID تولید می شود )
توضیح : این کلید میتواند Email و یا نام کاربری و یا یک کلید ساخت خودتون( Guid , یا تمام الگوریتم هائی که برای تولید کلید به کار میرود ) باشد.
3 . بعد از ساخت فیلد ها باید این کلید رو ساخته و در دیتابیس ذخیره و در ایمیل حاوی اطلاعات مربوط به Active به عنوان یک پارامتر در یک لینک برای کاربر ارسال می کنیم .
Namespaces :
System.Data.SqlClient
System.Net.Mail
protected void btnRegister_Click(object sender, EventArgs e)
{
// Create Activation Key & Url
string accountKey = Guid.NewGuid().ToString().Replace("-", string.Empty).ToUpper();
string activeLink = "http://www.mysite.com/ActiveUser.aspx?uid=" + accountKey;
// Insert Account Info in the database with accountkey
int result = -1;
SqlConnection sp_conn = new SqlConnection(connectionString);
SqlCommand sp_comm = new SqlCommand();
sp_comm.CommandType = CommandType.Text;
sp_comm.Connection = sp_conn;
sp_comm.CommandText = "Insert Into tblUsers VALUES(@Name,@Email,@ActiveKey,@Status)";
sp_comm.Parameters.AddWithValue("Name", txtName.Text);
sp_comm.Parameters.AddWithValue("Email", txtEmail.Text);
sp_comm.Parameters.AddWithValue("ActiveKey", accountKey);
sp_comm.Parameters.AddWithValue("Status", false);
try
{
sp_conn.Open();
result = sp_comm.ExecuteNonQuery();
sp_conn.Close();
}
catch
{
if (sp_conn != null)
sp_conn.Close();
}
finally
{
switch (result)
{
case 1:
ShowResult("Create User Successfully .");
SendEmail(txtEmail.Text,txtName.Text,activeLink);
break;
case -1:
case 0 :
ShowResult("Create User Failed !");
break;
}
}
}
private void SendEmail(string email,string name,string key)
{
// Send Email to user's Email Address with active link
try
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress("info@domain.com", "My site Registratration");
msg.To.Add(new MailAddress(email, name, Encoding.UTF8));
msg.Subject = "My site - Register Account";
msg.IsBodyHtml = true;
msg.DeliveryNotificationOptions = DeliveryNotificationOptions.None;
msg.Priority = MailPriority.Normal;
msg.ReplyTo = new MailAddress("support@domain.com", "My site Support Systems");
StreamReader sr = new StreamReader(Server.MapPath("~/ActiveMail.htm"));
string temp = sr.ReadToEnd();
temp = temp.Replace("[###Name###]", name).Replace("[###Url###]", key);
msg.Body = temp;
SmtpClient smtp = new SmtpClient("mail.domain.com");
System.Net.NetworkCredential perm = System.Net.NetworkCredential("account@domain.com", "password");
smtp.Credentials = perm;
smtp.Send(msg);
ShowResult("Send Email Success !");
}
catch
{
ShowResult("Send Email Failed !");
}
}
private void ShowResult(string p)
{
lblStatus.Text = p;
}
4 . در این مرحله کاربر بر روی لینکی که تولید کردیم، کلیک میکند و به صفحه ActiveUser.aspx وارد میشود.
توضیح : در این صفحه پارامتر uid رو چک میکنیم و بعد در صورت مثبت بودن :
protected void Page_Load(object sender, EventArgs e)
{
// Check this Key with your database
string key = Request.QueryString["uid"];
if (!string.IsNullOrEmpty(key))
{
int result = -1;
SqlConnection sp_conn = new SqlConnection(connectionString);
SqlCommand sp_comm = new SqlCommand();
sp_comm.CommandType = CommandType.Text;
sp_comm.Connection = sp_conn;
sp_comm.CommandText = "Update tblUsers Set Status = 1 Where( Status = 0 ) And ( ActiveKey = @ActiveKey )";
sp_comm.Parameters.AddWithValue("ActiveKey", key);
try
{
sp_conn.Open();
result = sp_comm.ExecuteNonQuery();
sp_conn.Close();
}
catch
{
if (sp_conn != null)
sp_conn.Close();
}
finally
{
switch (result)
{
case 1:
ShowResult("Active User Successfully .");
break;
case -1:
case 0:
ShowResult("Invalid Activation Key !");
break;
}
}
}
}
در صورتی که کلید صحیح و قبلاً فعال نشده بود ، فیلد Status کاربر مربوطه را True میکنیم.
فایل ActiveMail.htm
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>.:: My Site - Active Register Account ::.</title>
</head>
<body>
<div align="center">
<div style="width:90%" align="left">
Dear [###Name###]<br/>
<br/>
Thanks for using this site<br/>
<br/>
To continue registering account , you should active it .<br/>
Click this link below to Active your account :<br/>
<br/>
<a href="[###Url###]">[###Url###]</a></div>
</div>
</body>
</html>
حالا غذا آماده است ، بچه ها رو صدا کنید بیان شام بخورن !!!!!!
بچه ها شرمنده .....
غذا یه خورده بی نمکه !
منتظر نظزات و پیشنهادات برای بهبود این مقاله هستیم ....