Example #1
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new SMSUser {
                    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);

                    // 有关如何启用帐户确认和密码重置的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=320771
                    // 发送包含此链接的电子邮件
                    // 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, "确认你的帐户", "请通过单击 <a href=\"" + callbackUrl + "\">這裏</a>来确认你的帐户");

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(View(model));
        }
Example #2
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new SMSUser {
                    UserName = model.Username, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, PhoneNumber = model.PhoneNumber, CountryID = model.CountryID, StateID = model.StateID, CityID = model.CityID
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await UserManager.AddToRoleAsync(user.Id, "User");

                    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>");

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            RegisterViewModel registerViewModel = new RegisterViewModel();

            registerViewModel.Country = Countries.GetByID(166);

            registerViewModel.CountriesList = Countries.GetAll();

            return(View(registerViewModel));
        }
Example #3
0
        public async Task <ActionResult> Action(UserActionModel model)
        {
            var user = new SMSUser();

            user.FullName = model.FullName;
            user.UserName = model.UserName;
            user.Email    = model.Email;
            user.Phone    = model.Phone;
            user.Address  = model.Address;
            await UserManager.CreateAsync(user);

            return(RedirectToAction("Index"));
        }
Example #4
0
        public async Task <JsonResult> Action(UsersActionModel model)
        {
            IdentityResult result = null;
            JsonResult     json   = new JsonResult();

            model.Country = Countries.GetByID(166);

            model.CountriesList = Countries.GetAll();

            if (!string.IsNullOrEmpty(model.ID)) // We try to edit record
            {
                var user = await UserManager.FindByIdAsync(model.ID);

                user.FirstName   = model.FirstName;
                user.LastName    = model.LastName;
                user.Email       = model.Email;
                user.UserName    = model.Username;
                user.PhoneNumber = model.PhoneNumber;
                user.CountryID   = model.CountryID;
                user.StateID     = model.StateID;
                user.CityID      = model.CityID;
                user.Address     = model.Address;

                result = await UserManager.UpdateAsync(user);
            }
            else // We try to create record
            {
                var user = new SMSUser();
                user.FirstName   = model.FirstName;
                user.LastName    = model.LastName;
                user.Email       = model.Email;
                user.UserName    = model.Username;
                user.PhoneNumber = model.PhoneNumber;
                user.CountryID   = model.CountryID;
                user.StateID     = model.StateID;
                user.CityID      = model.CityID;
                user.Address     = model.Address;

                result = await UserManager.CreateAsync(user);
            }
            json.Data = new { Success = result.Succeeded, Message = string.Join(",", result.Errors) };


            return(json);
        }
Example #5
0
        public async Task <ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl)
        {
            if (User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Index", "Manage"));
            }

            if (ModelState.IsValid)
            {
                // 从外部登录提供程序获取有关用户的信息
                var info = await AuthenticationManager.GetExternalLoginInfoAsync();

                if (info == null)
                {
                    return(View("ExternalLoginFailure"));
                }
                var user = new SMSUser {
                    UserName = model.Email, Email = model.Email
                };
                var result = await UserManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    result = await UserManager.AddLoginAsync(user.Id, info.Login);

                    if (result.Succeeded)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                        return(RedirectToLocal(returnUrl));
                    }
                }
                AddErrors(result);
            }

            ViewBag.ReturnUrl = returnUrl;
            return(View(model));
        }
        public bool Send(Controller controller, SMS smsInput)
        {
            if (controller.ModelState.IsValid)
            {
                db.SMSes.Add(smsInput);
                db.SaveChanges();

                SMSUser smsUser = new SMSUser
                {
                    UserName = UserSession.GetLoggedUserName(),
                    SMSId    = smsInput.SmsId
                };

                db.SMSUser.Add(smsUser);
                db.SaveChanges();

                return(true);
            }
            else
            {
                return(false);
            }
        }