Beispiel #1
0
        public async Task <IHttpActionResult> ConfirmEmail(string userId = "", string code = "")
        {
            if (string.IsNullOrWhiteSpace(userId) || string.IsNullOrWhiteSpace(code))
            {
                ModelState.AddModelError("", "User Id and Code are required");
                return(BadRequest(ModelState));
            }

            //IdentityResult result = await UserManager.ConfirmEmailAsync(userId, code);

            using (lextraDBEntities entities = new lextraDBEntities())
            {
                UserInfo userinfo = new UserInfo();
                userinfo = await entities.UserInfoes.FirstOrDefaultAsync(u => u.UserID == userId);

                string match = GetHashSha256(code, userId);

                if (userinfo.Code == match)
                {
                    userinfo.Verified = "true";
                }
                else
                {
                    return(BadRequest());
                }
                //entities.UserInfoes.Add(userinfo);
                entities.SaveChanges();
            }
            return(Ok());
        }
Beispiel #2
0
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = new ApplicationUser()
            {
                UserName = model.UserName, Email = model.Email
            };

            IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            using (lextraDBEntities entities = new lextraDBEntities())
            {
                UserInfo userinfo = await entities.UserInfoes.FirstOrDefaultAsync(u => u.Email == model.Email);

                userinfo.FirstName = model.FirstName;
                userinfo.LastName  = model.LastName;
                userinfo.ZipCode   = model.ZipCode;
                //entities.UserInfoes.Add(userinfo);
                entities.SaveChanges();
            }

            return(Ok());
        }
Beispiel #3
0
        public async Task <IHttpActionResult> ForgotPassword(ForgotPasswordViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var user = await UserManager.FindByEmailAsync(model.Email);

                    //If user has to activate his email to confirm his account, the use code listing below
                    //if (user == null || !(await UserManager.IsEmailConfirmedAsync(user.Id)))
                    //{
                    //    return Ok();
                    //}
                    if (user == null)
                    {
                        return(BadRequest());
                    }

                    // 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
                    var    guid = Guid.NewGuid().ToString();
                    string code = GetHashSha256(guid, model.Email);
                    using (lextraDBEntities entities = new lextraDBEntities())
                    {
                        lextraResetPassword userinfo = await entities.lextraResetPasswords.FirstOrDefaultAsync(u => u.Email == model.Email);

                        if (userinfo != null)
                        {
                            entities.lextraResetPasswords.Remove(userinfo);
                        }
                        lextraResetPassword userdata = new lextraResetPassword
                        {
                            Email = model.Email,
                            Code  = code
                        };
                        entities.lextraResetPasswords.Add(userdata);
                        entities.SaveChanges();
                    }
                    var callbackUrl = "http://*****:*****@"<a href=\""" + callbackUrl + "\">here</a");
                    SendEmail(user.Email, "Reset Password for LEXREWARDS", body.ToString());
                    return(Ok());
                }

                // If we got this far, something failed, redisplay form
                return(BadRequest(ModelState));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Beispiel #4
0
        public async Task <IHttpActionResult> ValidateEmailAsync(RegisterAndValidateEmailBindingModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                var user = new ApplicationUser()
                {
                    UserName = model.Username, Email = model.Email
                };

                // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                var guid = Guid.NewGuid().ToString().Substring(0, Guid.NewGuid().ToString().IndexOf("-"));

                string code = GetHashSha256(guid, user.Id);
                using (lextraDBEntities entities = new lextraDBEntities())
                {
                    UserInfo userinfo = await entities.UserInfoes.FirstOrDefaultAsync(u => u.Email == model.Email);

                    if (userinfo != null)
                    {
                        entities.UserInfoes.Remove(userinfo);
                    }
                    UserInfo userdata = new UserInfo
                    {
                        UserName = model.Username,
                        Email    = model.Email,
                        UserID   = user.Id,
                        Code     = code,
                        Verified = "false"
                    };
                    entities.UserInfoes.Add(userdata);
                    entities.SaveChanges();
                }
                SendEmail(user.Email, "Confirm your account", $"Your OTP for Email Confirmation is {guid}");
                return(Ok(user.Id));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }