نمایش نتایج 1 تا 19 از 19

نام تاپیک: طرز تهیه Activation Register Account

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر دائمی آواتار mostafa_sgh
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران - پائین شهر
    پست
    251

    Talking طرز تهیه Activation Register Account ( لینک فعال سازی شناسه کاربران )

    سلام به همه دوستان گرامی
    این مقاله بنا به درخواست دوستان تهیه و در اینجا گرد آورده شده است .
    با نظراتتان ما را در بهبود فهم و منطق آن کمک کنید.
    امیدواریم مورد پسندتان قرار بگیرد ...

    طرز تهیه 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>


    حالا غذا آماده است ، بچه ها رو صدا کنید بیان شام بخورن !!!!!!
    بچه ها شرمنده .....
    غذا یه خورده بی نمکه !

    منتظر نظزات و پیشنهادات برای بهبود این مقاله هستیم ....
    آخرین ویرایش به وسیله mostafa_sgh : دوشنبه 23 اسفند 1389 در 09:40 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •