آموزش ارسال لینک فعال سازی در Asp.Net MVC 5
0 0

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


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

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

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

برای این کار ابتدا به کنترل Account بروید و سپس اکشن Register قسمت Post آن را به صورت زیر تغییر دهید

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{

    if (ModelState.IsValid)
    {
        var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
        var result = await UserManager.CreateAsync(user, model.Password);
        if (result.Succeeded)
        {
            // بعد از ثبت نام کاربر رو لاگین نمی کنیم
            //await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);

            // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
            // Send an email with this link
            // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
            // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
            // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

            // یک توکن ایجاد می کنیم
            string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);

            // مشخص کردن صفحه فعال سازی ایمیل
            var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);

            ConfigurationEmail.SendEmailWithInfokarkoo(user.Email, "لینک تایید ثبت نام", "لطفا با کلیک روی لینک زیر، ثبت نام خود را تایید نمایید", callbackUrl);

        }
    }

    // If we got this far, something failed, redisplay form
    return View(model);
}

اولین این که بعد از ثبت کاربر، کاربر را لاگین نمی کنیم و یک توکن برای کاربر ایجاد می کنیم.

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

در پست های قبلی نحوه ارسال ایمیل در MVC را آموزش دادیم در صورتی که با ارسال ایمیل در MVC آشنا نیستید به این آموزش را ببینید.

user.Email ایمیل کاربر ثبت نامی

callbackUrl آدرس صفحه فعال سازی حساب کاربری

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

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
    if (!ModelState.IsValid)
    {
        return View(model);
    }

    var user = await UserManager.FindByEmailAsync(model.Email);


    if (user != null)
    {
        if (!await UserManager.IsEmailConfirmedAsync(user.Id))
        {
            ViewBag.Message = "حساب کاربری شما غیر فعال است";
            return View();
        }
    }
    else
    {
        ViewBag.Message = "رمز عبور یا ایمیل شما نامتبر است";
        return View(model);
    }

    // This doesn't count login failures towards account lockout
    // To enable password failures to trigger account lockout, change to shouldLockout: true
    var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
    switch (result)
    {
        case SignInStatus.Success:
            LoginTransaction(user.Id);
            return RedirectToLocal(returnUrl);
        case SignInStatus.LockedOut:
            return View("Lockout");
        case SignInStatus.RequiresVerification:
            return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
        case SignInStatus.Failure:
        default:
            ModelState.AddModelError("", "نام کاربری یا رمز عبور صحیح نمی باشد");
            return View(model);
    }
}

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

دانلود

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

نظر / سوال

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

  • فرهاد

    سلام لطفا در مورد فراموشی رمز عبور و نحوه ارسال لینک برای ریست کردن پسورد مطلب بزارید با Mvc و Identity 2

    پاسخ
    • حسین فتحی

      سلام

      تمام این موارد در پروژه یک فروشگاه اینترنتی راه اندازی شده

      http://goo.gl/zgGyjz

      پاسخ