آموزش و سورس نحوه ارسال لینک فعال سازی در Asp.Net
1 0

آموزش و سورس نحوه ارسال لینک فعال سازی در Asp.Net


آموزش و سورس نحوه ارسال لینک فعال سازی در Asp.Net

یکی از مهمترین دلیل استفاده از لینک فعال سازی هنگام ثبت نام برای این است که کاربران ایمیل متبری را وارد کنند و همچنین بتوانیم بعدا اخبار سایت را برای کاربران بفرستیم و در نهایت زمانی که کاربران در ایمیل خود بر روی لینک اخبار کلیک می کنند رتبه سایت ما در موتورهای جستجو بالاتر می رود و در جستجو موتورهای جستجو در اول نمایش دهد.

برای ارسال لینک فعال سازی چندین روش وجود دارد که ما در اینجا به ساده ترین آن می پردازیم.

برای این کار ابتدا شما باید یک جدول برای ثبت نام در sql server طراحی کنید که به شکل زیر می باشد

آموزش و سورس نحوه ارسال لینک فعال سازی در asp.net

برای این کار ما به یک صفحه ثبت نام نیازمندیم که می توانید آن را طراحی کنید ( ما این صفحه را با نام CS.aspx ساخته ایم که در فایل Zip قرار دارد.)  شکل این صفحه به صورت زیر می باشد.

همانطور که مشاهده می کنید کاربر فرم را تکمیل کرده و بر روی دکمه ثبت نام کلیک می کند.

حال به توضیح کدهایی که بعد از کلیک بر روی دکمه ثبت نام اتفاق می افتد می پردازیم.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using System.Net.Mail;
using System.Net;

public partial class CS : System.Web.UI.Page
{
    #region کلیک ثبت نام
    protected void RegisterUser(object sender, EventArgs e)
    {
        string activationCode = Guid.NewGuid().ToString();

        main main = new main();

        main.Username = txtUsername.Text.Trim();
        main.Password = txtPassword.Text;
        main.Email = txtEmail.Text;
        main.CreatedDate = System.DateTime.Now;
        main.EmailActivation = false;
        main.ActivationCode = activationCode;
        main.InsertUser();

        SendActivationEmail(activationCode);        

        string message = "";
        message = "ثبت نام شما با موفیت انجام شد";
        ClientScript.RegisterStartupScript(GetType(), "alert", "alert('" + message + "');", true);

    }
    #endregion

    #region متد ارسال لینک فعال شازی
    private void SendActivationEmail(string activationCode)
    {
        using (MailMessage mm = new MailMessage("info@iranganj.ir", txtEmail.Text))
        {
            mm.Subject = "Account Activation";
            string body = "Hello " + txtUsername.Text.Trim() + ",";
            body += "<br /><br />Please click the following link to activate your account";
            body += "<br /><a href = '" + Request.Url.AbsoluteUri.Replace("CS.aspx", "CS_Activation.aspx?ActivationCode=" + activationCode) + "'>Click here to activate your account.</a>";
            body += "<br /><a href = '" + Request.Url.AbsoluteUri.Replace("CS.aspx", "CS_Activation.aspx?ActivationCode=" + activationCode) + "'>" + Request.Url.AbsoluteUri.Replace("CS.aspx", "CS_Activation.aspx?ActivationCode=" + activationCode) + "</a>";
            body += "<br /><br />Thanks";
            mm.Body = body;
            mm.IsBodyHtml = true;
            SmtpClient smtp = new SmtpClient();
            smtp.Host = "mail.iranganj.ir";
            //smtp.EnableSsl = false;
            NetworkCredential NetworkCred = new NetworkCredential("info@iranganj.ir", "123");
            smtp.UseDefaultCredentials = true;
            smtp.Credentials = NetworkCred;
            //smtp.Port = 587;
            smtp.Send(mm);
        }
    }
    #endregion
}

همانطور که مشاهده می کنید ما از یک کلاس به نام Main نیز استفاده کرده ایم که کدهای آن به صورت زیر می باشد.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Web;
using System.Data;
using System.Data.SqlClient;


public class main : connection
{
    public string Username;
    public string Password;
    public string Email;
    public DateTime CreatedDate;
    public Boolean EmailActivation;
    public string ActivationCode;

    public main()
    {

    }
    #region متد ثبت اطلاعات کاربر در دیتابیس
    public void InsertUser()
    {
        objcomm.Connection = objconn;

        string sql = "Insert Into Users (Username,Password,Email,CreatedDate,EmailActivation,ActivationCode)";
        sql += "values ('{0}','{1}','{2}','{3}','{4}','{5}')";
        sql = string.Format(sql, Username, Password, Email, CreatedDate, EmailActivation, ActivationCode);

        objcomm.CommandText = sql;
        objconn.Open();
        objcomm.ExecuteNonQuery();
        objconn.Close();
    }
    #endregion

    #region متد فعال سازی حساب کاربر
    public int ActiveUser(string activationCode)
    {
        int rowsAffected = 0;

        objcomm.Connection = objconn;
        objcomm.CommandText = "UPDATE Users SET EmailActivation=1  WHERE ActivationCode='" + activationCode + "'";
        objconn.Open();
        rowsAffected = objcomm.ExecuteNonQuery();
        objconn.Close();

        return rowsAffected;
    }
    #endregion
}

ابتدا کدهای کلاس Main را توضیح می دهیم سپس به کدهای بالا می پردازیم.

همانطور که مشاهده می کنید مادر کلاس Main دو متد داریم یکی به نام InsertUser و دیگری به نام ActiveUser

کار متد InsertUser ثبت اطلاعات کاربر در پایگاه داده می باشد که برای این کار از دستور Insert ، SQL استفاده کرده ایم.

متد دوم ActiveUser می باشد در این متد ما یک ActivationCode دریافت می کنیم و سپس در پایگاه داده اگر این ActivationCode موجود باشد فیلد EmailActivation آن را برابر 1 قرار می دهیم. که دستور Update را استفاده کرده ایم.

حال به توضیح کدهای موجود در دکمه ثبت نام می پردازیم.

در ابتدا با استفاده از دستور

 string activationCode = Guid.NewGuid().ToString();

یک ActivationCode تولید می کنیم. سپس در خط بعدی یک نمونه از کلاس Main ایجاد کرده ایم. و با استفاده از متغیرهایی که در کلاس Main تعریف کرده ایم مقادیر وارد شده در فرم را به کلاس مورد نظر ارسال می کنیم.

سپس متد InsertUser را با دستور main.InsertUser();  فراخوانی کرده ایم این متد را که در بالا توضیح دادیم و کار ثبت اطلاعات را در پایگاه داده انجام می دهد.

سپس در خط بعدی ما تابع SendAcivationEmail را فراخوانی کرده ایم که کدهای آن را در همان صفحه مشاهده می کنید. کار این تابع این است که ما در بالا یک ActivationCode تولید کردیم این کد را به تابع ارسال کرده و تابع بعد از دریافت این کد یک ایمیل حاوی کد فعال سازی را به ایمیل ثبت نامی طرف ارسال می کند. که کدهای آن را در این دو خط مشاهده می کنید.

body += "<br /><a href = '" + Request.Url.AbsoluteUri.Replace("CS.aspx", "CS_Activation.aspx?ActivationCode=" + activationCode) + "'>Click here to activate your account.</a>";
body += "<br /><a href = '" + Request.Url.AbsoluteUri.Replace("CS.aspx", "CS_Activation.aspx?ActivationCode=" + activationCode) + "'>" + Request.Url.AbsoluteUri.Replace("CS.aspx", "CS_Activation.aspx?ActivationCode=" + activationCode) + "</a>";

که در این دستورات همانطور که مشاهده می کنید ما در ابتدا آدرس صفحه ثبت نام که همان CS.aspx می باشد را نوشته ایم و سپس بعد از کلیک به صفحه ای که هدایت می شود را نوشته ایم که همان صفحه CS_Activation.aspx می باشد را به همراه ActivationCode ارسال کرده ایم.

حال کاربر ایمیلی را دریافت کرده که حاوی لینک فعال سازی می باشد.

حال به اتفاقاتی که بعد از کلیک بر روی لینک فعال سازی می افتد می پردازیم.

کاربر ایمیل خود را باز کرده و بر روی لینک فعال سازی کلیک می کند. هنگامی که بر روی لینک فعال سازی کلیک می کند کدهای موجود در صفحه CS_Activation.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.Data;
using System.Configuration;
using System.Data.SqlClient;
public partial class CS_Activation : System.Web.UI.Page
{
    #region فرم لود فعال سازی حساب کاربری
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {

            string activationCode = !string.IsNullOrEmpty(Request.QueryString["ActivationCode"])
                ? Request.QueryString["ActivationCode"]
                : Guid.Empty.ToString();

            main main = new main();
           
            if (main.ActiveUser(activationCode) == 1)
            {
                //main.ActiveUser(activationCode);

                string message = "";
                message = "حساب شما فعال شد";
                ClientScript.RegisterStartupScript(GetType(), "alert", "alert('" + message + "');", true);
            }
            else
            {
                string message = "";
                message = "لینک فعال سازی نامتبر است";
                ClientScript.RegisterStartupScript(GetType(), "alert", "alert('" + message + "');", true);
            }

        }
    }
    #endregion
}

ActivationCode ای را که تولید کرده بودیم دریافت می کنیم سپس در خط بعدی یک نمونه از کلاس Main ایجاد می کنیم.

اگر به یاد داشته باشد ما در کلاس Main یک متدی به نام ActiveUser داشتیم که در بالا توضیح دادیم حال به ادامه توضیحات آن می پردازیم. شما هنگامی که یک دستور SQL را برای مثال در SQL Server اجرا می کنید برای مثال دستور Insert را به کار می برید وقتی که دستور Insert اجرا شد در پایان به شما می گوید

One Row Affected ، همانطور که در متد ActiveUser می بینید ما یک متغیر به نام rowsAffected تعریف کرده ایم و برابر صفر می باشد هنگامی که دستور Update انجام می گیرد ما دستور rowsAffected = objcomm.ExecuteNonQuery();  را به کار برده ایم  که اگر دستور Update به درستی انجام شود rowsAffected برابر 1 می شود. که در پایان ما ان را با استفاده از دستور Return ارسال کرده ایم حال ما با استفاده از دستور شرطی if (main.ActiveUser(activationCode) == 1) چک می کینم که آیا متد activeUser عدد 1 را برگدانده است یا خیر اگر شرط درست باشد یعنی لینک فعال سازی معتبر بوده و حساب کاربری طرف فعال می شود وگرنه دستورات قسمت Else اجرا شده و پیغام می دهد که لینک فعال سازی معتبر نمیباشد.

 

دانلود

نویسنده حسین فتحی
گروه مطلب Asp.Net
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۷ مرداد ۱۳۹۳
منبع ایران گنج
تعداد نظرات ۱۴
قیمت کاربران VIP
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.
خرید VIP
امکان خرید از درگاه های بانکی و حساب مجازی

برای دانلود بعد از خرید به همین صفحه برگردید تا لینک های دانلود نمایش داده شود

نظر / سوال

Captcha
نظرات کاربران

  • حسین

    تورو خدا کمکم کنید..سلام من یه پروژه دانشجویی در مورد رستوران اینترنتی با html نوشتم الان برای قسمت لینک به بانک نمیدونم باید چیکار کنم.. استادم گفته قسمت لینک به بانک را با asp.net بنویسم…یه سوال دیگه اینکه چگونه رابطه html را با asp.net برقرار کنم؟؟

    پاسخ
    • مدیر

      با سلا و درود

      شما باید کد نویسی سمت سرور را بلد باشید برای این کار از آموزش طراحی فروشگاه اینترنتی با Asp.Net که در سایت هستش استفاده کنید در صورتی که با C#.Net نیز کار نکردید از آموزش های سی شارپ موجود در سایت رو دانلود کنید.

      پاسخ
      • حسین

        تشکر

        پاسخ
  • nima

    با سلام

    این objcomm,objconn از چه شی ای هستند؟

    پاسخ
    • مدیر

      با سلام

      این موارد مربوط به کلاس کانکشن استرینگ هستش و اگه دقت کرده باشید کلاس main از کلاس connection ارث بری کرده و کلاس connection رو دیگه اینجا قرار ندادیم ولی تو سورس هستش.

      پاسخ
  • Sana

    ممنون از آموزشتون این روش تو محیط لوکال هم کار میکنه؟

    پاسخ
    • مدیر

      با سلام و درود به شما کاربر گرامی

      بله تو local هم می تونید تست کنید. هیچ مشکل و محدودیتی نداره

      پاسخ
  • حمید

    ممنون بابت پیگیریتون و مرسی بابت فایل آموزشی که قرار دادید بنده مجددا دانلود کردم ولی هیچ فایل pdf در داخل فایل زیپ شده نبود ممنون میشم اصلاح کنید

    پاسخ
    • مدیر

      با سلام و درود به شما کاربر گرامی

      فایل PDF در کنار سورس کد قرار داده شده

      پاسخ
  • حمید

    مرسی از زحماتتون

    منم آموزش همین ارسال لینک فعال سازی رو میخوام، یه توضیح مختصر در مورد ساختار دیتابیس دادید ولی هیچ توضیحی در مورد سورس ندادید، که کد لینک فعال سازی چطور ساخته میشه، چطور فعال میشه و در دیتابیس فیلد مورد نظر اکتیو میشه و کلا آموزش کلی لینک فعال سازی... شما زدید آموزش ارسال لینک فعال سازی،، آموزش حاوی سورس html و css و سورس asp و دیتابیس میشه، کلا ساختار ارسال لینک فعال سازی...

    پاسخ
    • مدیر

      با سلام و درود به شما کاربر گرامی

      آموزش در قالب یک فایل pdf کنار سورس کد اضافه شد دوباره فایل را دانلود کنید.

      پاسخ
  • حمید

    سلام

    بنده اکانت vip خریدیم شما تیتر صفحه تون زدید (آموزش) و سورس نحوه ارسال لینک فعال سازی در Asp.Net سورسش بود ولی آموزش نبود!!! لطف کنید آموزش ارسال لینک فعال سازی رو بزارید حالا فیلم آموزشی یا فایل pdf با تصویر یا حداقل تیترتون رو عوض کنید که ما هزینه الکی پرداخت نکنیم یه مقدار توضیح گذاشتید با تصویر.. کاربر فکر میکنه ادامه آموزش توی لینک دانلود هستش و هزینه پرداخت میکنه و اکانت vip میخره وقتی دانلود میکنه میبینه سرش کلاه رفته!!! لطفا پیگیری کنید ممنون

    پاسخ
    • مدیر

      با سلام و درود به شما کاربر گرامی

      در این آموزش ما مبحث چگونگی ارسال ایمیلرا توضیح نمی دهیم چرا که در مطالب قبلی نحوه ارسال ایمیل را به صورت کامل توضیح داده ایم و همچنین نحوه ارسال ایمیل گروهی و ... نیز توضیح داده شده است.

      در اینجا ما فقط نحوه ارسال لینک فعال سازی و نحوه فعال شدن حساب کاربری را توضیح داده ایم. همچنین سورس کد ، کدهای برنامه به راحتی قایل فهم می باشند.

      پاسخ
  • موسی

    سلام

    آموزش ساخت همین TextEditor ی که من دارم توش کامنت تایپ می کنم را هم توی سایت بزارین.

    این TextEditor واقعاٌ زیباست و اگر آموزش استفاده از این TextEditor را در سایت قرار بدین خیلی عالی میشه

    موفق باشید.

    پاسخ