public async Task <JsonResult> SendCode(string id)
        {
            try
            {
                var userStore = NewUserStore();
                var user      = await userStore.FindByIdAsync(id);

                if (user == null)
                {
                    return(Json(new ResponseData()
                    {
                        message = "Kullanıcı bulunamnadu",
                        success = false
                    }));
                }
                if (user.EmailConfirmed)
                {
                    return(Json(new ResponseData()
                    {
                        message = "Kullanıcı zaten e postasını onaylamıs",
                        success = false
                    }));
                }

                user.ActivationCode = StringHelpers.GetCode();
                await userStore.UpdateAsync(user);

                userStore.Context.SaveChanges();
                string SiteUrl = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host +
                                 (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port);

                var emailService = new EMailService();
                var body         = $"Merhaba <b>{user.Name} {user.Surname}</b><br>Hesabınızı aktif etmek için aşadıdaki linke tıklayınız<br> <a href='{SiteUrl}/account/activation?code={user.ActivationCode}' >Aktivasyon Linki </a> ";
                await emailService.SendAsync(new IdentityMessage()
                {
                    Body    = body,
                    Subject = "Sitemize hoşgeldiniz"
                }, user.Email);

                return(Json(new ResponseData()
                {
                    message = "Kullanıcıya yeni aktivasyon maili gönderildi",
                    success = false
                }));
            }
            catch (Exception ex)
            {
                return(Json(new ResponseData()
                {
                    message = $"Bir hata oluştu: {ex.Message}",
                    success = false
                }));
            }
        }
        public JsonResult TestSMTP(string destinationAddress)
        {
            var resultTest = false;

            var eMailService = new EMailService();

            try
            {
                eMailService.SendAsync("Teste de envio de e-mail", "Teste", destinationAddress);
                resultTest = true;
            }
            catch (Exception)
            {
                HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                resultTest = false;
            }

            return(Json(resultTest, JsonRequestBehavior.AllowGet));
        }
Beispiel #3
0
        public Task SendAsync(IdentityMessage message)
        {
            eMailService.SendAsync(message.Body, message.Subject, message.Destination);

            return(Task.FromResult(0));
        }
Beispiel #4
0
        public async Task <ActionResult> Register(RegisterLoginViewModel model)

        {
            if (!ModelState.IsValid)
            {
                return(View("Index", model));//ındex view ını modelle çalıştıryprum.
            }

            try
            {
                var userStore   = NewUserStore();   //veritabanı işlemi yapcağımız için Store kullanırız.
                var userManager = NewUserManager(); //yukarda static kütüphane seklinde tanımlamasaydık MembershipTools.Newusermanager yazardık.
                var roleManager = NewRoleManager();
                //registerviewmodelde propertlere tanımladığımız isim username ... leri formda doldurup rm ye atıyoruz.
                var rm   = model.RegisterViewModel;                        //Kullanıcı varmı yokmu diye bakmak için kullanıyoruz.
                var user = await userManager.FindByNameAsync(rm.UserName); //username e göre arıyor.

                if (user != null)
                {
                    ModelState.AddModelError("UserName", "Bu kullanıcı daha önce alınmıştır.");
                    return(View("Index", model));
                }
                var newUser = new User()//Kullanıcıyı değişkene atıyprum.
                {
                    UserName       = rm.UserName,
                    Email          = rm.Email,
                    Name           = rm.Name,
                    Surname        = rm.Surname,
                    ActivationCode = StringHelpers.GetCode()
                };
                //Kullanıcı oluşturuyoruz.
                var result = await userManager.CreateAsync(newUser, rm.Password); //password ü ayrı alıyor çünkü şifrelicek.

                if (result.Succeeded)                                             //İlk kullanıcıysa admin yapalım.
                {
                    if (userStore.Users.Count() == 1)
                    {
                        await userManager.AddToRoleAsync(newUser.Id, "Admin");//içine userıd ve role alır.
                    }
                    else//ilk kaydettiğimiz admin oldu sonrakiler user olarak buraya düşüyor.
                    {
                        await userManager.AddToRoleAsync(newUser.Id, "User");
                    }
                    string SiteUrl = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host +
                                     (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port);

                    var emailService = new EMailService();
                    var body         = $"Merhaba <b>{newUser.Name} {newUser.Surname}</b><br>Hesabınızı aktif etmek için aşadıdaki linke tıklayınız<br> <a href='{SiteUrl}/account/activation?code={newUser.ActivationCode}' >Aktivasyon Linki </a> ";
                    await emailService.SendAsync(new IdentityMessage()
                    {
                        Body = body, Subject = "Sitemize Hoşgeldiniz"
                    }, newUser.Email);                                                                                                   //mailin gitmesi için newUser.Email eklemeliyiz.
                }
                else
                {
                    var err = "";
                    foreach (var resultError in result.Errors)
                    {
                        err += resultError + " ";
                    }
                    ModelState.AddModelError("", err);
                    return(View("Index", model));
                }
                TempData["Message"] = "Kaydınız basarıyla alınmıştır";
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                TempData["Model"] = new ErrorViewModel()
                {
                    Text           = $"Bir hata oluştu {ex.Message}",
                    ActionName     = "Index",
                    ControllerName = "Account",
                    ErrorCode      = 500
                };
                return(RedirectToAction("Error", "Home"));
            }
        }