ورود / ثبت نام
0
0

فعال سازی کاربر با ارسال لینک فعال سازی به زبان ASP.NET

رایگان!

بعد از عضویت رایگان دانلود کنید.

عضویت در سایت

ارسال لینک فعال سازی

امروز در این مقاله سری زدیم به ارسال لینک فعال سازی در ASP.NET  ،وقتی سایت در هر زمینه ای  طراحی و شروع به کار میکنه نیاز به عضویت کاربر داره برای گسرتش روند کاری که در آن فعال میکنه ، گاهی اوقات هستند کاربرایی که با وارد کردن ایمیل جعلی ثبت نام میکنند و اگر تخلفی هم توسط آن کاربران صورت گیرد پیدا کردن آن کمی مشکل خواهد بود هرچند توسط Validator میشود در هنگاه ثبت نام صحیح بودن ایمیل را تشخیص دارد ولی در این مقاله سراغ فعال سازی از طریق لینک رفتیم به طوری که کاربر وقتی ثبت نامی در سایت انجام میده با ارسال لینک فعال سازی و کلیک روی آن اطلاعات کاربری که در سایت ثبت کرده را تایید کرد.این آموزش را در ASP.NET و سی شارپ پیش میگیریم که پیشنهاد میکنم استفاده کنید !

ارسال لینک فعال سازی چگونه صورت میگیرد :

خوب میریم سراغ آموزش ، ابتدایی باید دیتابیس یا همون بانک اطللاعتیمونو بسازیم ! یک دیتابیس با نام ActiveUserBayEmail و کد زیر را در آن اجرا کنید تا دیتابیس در SQL Server ساخته بشه.

CREATE TABLE [dbo].[Tbl_User](
	[UserId] [int] IDENTITY(1,1) NOT NULL,
	[Email] [varchar](50) NOT NULL,
	[IsActive] [bit] NOT NULL,
	[ActiveCod] [varchar](200) NOT NULL,
 CONSTRAINT [PK_Tbl_User] PRIMARY KEY CLUSTERED 
(
	[UserId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

 

بعد از اینکه دیتابیسو ساختید ، نیاز داریم به یک صفحه برای دریافت ایمیل کاربر ، یک صفحه با نام Default بسازید و کد زیر را در ASPX فرم قرار بدید.

 

<div class="container">
            <div class="container-inner">
            
                    <div class="form-group">
                        <asp:Label runat="server" ID="lblEmail" Text="ایمیل:"></asp:Label>
                        <asp:TextBox runat="server" ID="txtEmail" Width="50%" CssClass="form-control"></asp:TextBox>
                    </div>
                    <div class="form-group">
                        <asp:Button ID="btnSendActivelink" runat="server" CssClass="btn btn-success" OnClick="btnSendActivelink_OnClick" Text="ارسال لینک فعال سازی"></asp:Button>
                    </div>

            </div>
        </div>

شاید براتون سوال باشه که کلاس هایی CSS  که در کد بالا استفاده کردم چی میشه ، من CSS های بوت استرپو به فرمم اضافه کردم که در فایل ضمیمه شده.

خو حالا نیاز داریم برای ارسال ایمیل و دریافت اطلاعات از کاربر کد زیر را در صفحه CS فرم Default قرار بدید.

  protected void btnSendActivelink_OnClick(object sender, EventArgs e)
        {
            var guid = Guid.NewGuid().ToString().Replace("-", "");
            db.Tbl_User.Add(new Tbl_User()
            {
                Email = txtEmail.Text,
                ActiveCod = guid,
                IsActive = false,
            });
            db.SaveChanges();
            var domainName = "http://" + Request.Url.Authority;
            string body = "<div style='direction:rtl; text-align:right;'>";
            body += "<li><a href="+ domainName+"/ActiveUser/" + guid + "></a>کلیک کنید</li>";
            body += "</div>";

            SendMail.SendEmailGmail.Send(txtEmail.Text, "لینک فعال سازی", body);

        }

 

کد بالا یک کلاسی داره به نام SednGmail که یک کلاس با نام SendEmailGmail میسازید و کد زیر را در آن قرار بدید برای ارسال ایمیل به کاربر.

   var mail = new MailMessage();
            var smtpServer = new SmtpClient("AdressSite");
            mail.From = new MailAddress("EmailName", "SubjectSend");
            mail.To.Add(To);
            mail.Subject = Subject;
            mail.Body = Body;
            mail.IsBodyHtml = false;
           

            //System.Net.Mail.Attachment attachment;
            // attachment = new System.Net.Mail.Attachment("c:/textfile.txt");
            // mail.Attachments.Add(attachment);

           // smtpServer.Port = 587;
            smtpServer.Credentials = new System.Net.NetworkCredential("EmailName", "Password");
            //smtpServer.EnableSsl = true;

            smtpServer.Send(mail);

در قسمت هایی که از EmailName و Password استفاده شده باید ادرس جیمیل خودتونو بدید ( فقط جیمیل )

 

خوب حالا به یک صفحه نیا داریم برای اینکه کاربر روی لینک فعال سازی کلیک کرد وارد اون صفحه بشه کد فعال سازی رو چک کنه و اکانتو فعال کنه ، یک صفحه با نام ActiveUser بسازید و کد زیر را در قسمت ASPX قرار بدید .

div class="container">
      <div class="container-inner">
          <div class="form-group">
              <div class="alert alert-success">
                  <span>
                      اطلاعات کاربری شما فعال شد
                  </span>
              </div>
          </div>
      </div>
  </div>

و کد زیر را در رویداد Form_Load صفحه قرار بدید

   var activecod = Page.RouteData.Values["ActiveCod"].ToString();

            var user = (from u in db.Tbl_User where u.ActiveCod == activecod select u).First();
            user.IsActive = true;
            db.SaveChanges();

 

راستی ساخت modal برای ارتباط با دیتابیس فراموش نشه ها ما از Entity و Linq استفاده کردیم.

 

سوالی ، مشکلی بود حتما مطرح کنید.موفق باشید.

اطلاعات بیشتر

زبان پروژه

C#&SQLServer

بانک اطلاعاتی

SQLServer

نقد و بررسی‌ها

اولین کسی باشید که دیدگاهی می نویسد “فعال سازی کاربر با ارسال لینک فعال سازی به زبان ASP.NET”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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