예제 #1
0
        public IActionResult VerifyEmail(RegisterviewModel model, string token)
        {
            DboEmailVerification dbEmv = _context.DboEmailVerification.SingleOrDefault(m => m.Vchr250Token == token && m.BEnabled == true);

            if (dbEmv != null)
            {
                string username   = model.UserName;
                byte[] password   = System.Text.Encoding.Unicode.GetBytes(model.Password);
                string domainName = Utility.GetUserNameFromEmail(dbEmv.Nvch128Email, true);
                TempData["UserName"] = username;
                LoginViewModel mode1 = new LoginViewModel {
                    Email = dbEmv.Nvch128Email
                };

                DboCredentialOrganizationInfo user = _context.DboCredentialOrganizationInfo.SingleOrDefault(m => m.Vchr128EMailDomain == domainName && m.BAllowEmailAssociation == true && m.BAllowSelfRegistration == true);
                //validate whether user record exists
                DboCredential dbCr = _context.DboCredential.SingleOrDefault(m => m.Vchr32Name == model.UserName && m.Bin64PasswordHash == password && m.BEnabled == false);
                if (dbCr != null)
                {
                    //step 6 creating user records.
                    new BusinessLayer(_context).CreateNormalUserCredential(username, user.BintCredentialId);
                    TempData["UserName"] = username;
                    SetSessionUserName(username);
                    dbEmv.BEnabled = false;
                    _context.DboEmailVerification.Update(dbEmv);
                    _context.SaveChanges();
                    return(RedirectToAction(nameof(CredentialsController.ManageCredentials), "Credentials", new { debug = "" }));
                }
                else
                {
                    ViewData["ErroMessage"] = "User doenst not exists";
                    return(View());
                }
            }
            else
            {
                //step 10 Access Denied.
                return(RedirectToAction(nameof(AccountController.AccessDenied), "Account", new { debug = "" }));
            }
        }
예제 #2
0
        public IActionResult Register(RegisterviewModel register)
        {
            if (!ModelState.IsValid)
            {
                return(View(register));
            }

            if (_userServices.isExistusername(register.Username))
            {
                ModelState.AddModelError("Username", "نام کاربری معتبر نمی باشد");
                return(View(register));
            }
            if (_userServices.isExistemail(FixedText.fixedemail(register.Email)))
            {
                ModelState.AddModelError("Email", "ایمیل معتر نمی باشد");
                return(View(register));
            }

            User user = new User()
            {
                Activecode   = NameGenerator.Generateuniqcode(),
                Email        = FixedText.fixedemail(register.Email),
                isActive     = false,
                Password     = PasswordHelper.EncodePasswordMd5(register.Password),
                Username     = register.Username,
                RegisterDate = DateTime.Now,
                UserAvatar   = "Defult.jpg"
            };

            _userServices.adduser(user);
            #region sende Activation email

            string body = _viewrender.RenderToStringAsync("_ActivateEmail", user);
            SendEmail.Send(user.Email, "فعال سازی", body);


            #endregion

            return(View("SuccedRegister", user));
        }