예제 #1
0
        public async Task <IActionResult> Register(MyUserViewModel userViewModel)
        {
            var user = await _userManager.FindByNameAsync(userViewModel.UserName);

            if (user == default)
            {
                var model = new MyUser
                {
                    Id       = Guid.NewGuid().ToString(),
                    UserName = userViewModel.UserName,
                    Email    = userViewModel.Email
                };

                var result = await _userManager.CreateAsync(model, userViewModel.Password);

                if (result.Succeeded)
                {
                    var token = await _userManager.GenerateEmailConfirmationTokenAsync(model);

                    var confirmationEmail = Url.Action("ConfirmEmail", "Login", new { token, email = model.Email }, Request.Scheme);

                    System.IO.File.WriteAllText("confirmationEmail.txt", confirmationEmail);
                }

                return(Ok(result));
            }

            return(BadRequest("Deu ruim"));
        }
예제 #2
0
        //
        // GET: /Manage/Index
        public async Task <ActionResult> Index(ManageMessageId?message)
        {
            ViewBag.StatusMessage =
                message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed."
                : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
                : message == ManageMessageId.SetTwoFactorSuccess ? "Your two-factor authentication provider has been set."
                : message == ManageMessageId.Error ? "An error has occurred."
                : message == ManageMessageId.AddPhoneSuccess ? "Your phone number was added."
                : message == ManageMessageId.RemovePhoneSuccess ? "Your phone number was removed."
                : "";

            var userId = User.Identity.GetUserId();
            var model  = new MyUserViewModel
            {
                HasPassword       = HasPassword(),
                PhoneNumber       = await UserManager.GetPhoneNumberAsync(userId),
                TwoFactor         = await UserManager.GetTwoFactorEnabledAsync(userId),
                Logins            = await UserManager.GetLoginsAsync(userId),
                BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId)
            };

            //var userid = System.Web.HttpContext.Current.User.Identity.GetUserId();

            model.MySightings = db.Sightings.Where(xx => xx.AspNetUserId == userId).ToList();;

            return(View(model));
        }
예제 #3
0
        public SignUpPage()
        {
            if (Device.RuntimePlatform == Device.Android)
            {
                var navigationPage = Application.Current.MainPage as NavigationPage;
                navigationPage.BarBackgroundColor = Color.Transparent;
            }

            InitializeComponent();

            BindingContext = new MyUserViewModel();
        }
예제 #4
0
        public IActionResult MyUser()
        {
            User            user          = repository.GetByUsername(User.Identity.Name);
            var             products      = productRepository.GetUserProducts(user.Id);
            var             account       = bankAccountRepository.GetByUserId(user.Id);
            var             notifications = notificationRepository.UserNotifications(user.Id).OrderByDescending(x => x.Date).Take(10);
            MyUserViewModel viewModel     = new MyUserViewModel()
            {
                User          = user,
                Products      = products,
                BankAccounts  = account,
                Notifications = notifications
            };

            return(View(viewModel));
        }
        public async Task <ActionResult> Create(MyUserViewModel model)
        {
            if (ModelState.IsValid)
            {
                MyUser user = new MyUser {
                    UserName = model.Name, Email = model.Email
                };
                IdentityResult result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Index"));
                }
                AddErrorsFromResult(result);
            }
            return(View(model));
        }
예제 #6
0
        public async Task <IActionResult> Login(MyUserViewModel userViewModel)
        {
//            var siginResult = await _signInManager.PasswordSignInAsync(
//                userViewModel.UserName, userViewModel.Password, false, false);

//            if (siginResult.Succeeded)
//                return Ok(siginResult);

            var user = await _userManager.FindByNameAsync(userViewModel.UserName);

            if (user == default)
            {
                return(Unauthorized("Usuario ou senha inválido"));
            }

            if (!await _userManager.IsEmailConfirmedAsync(user))
            {
                return(BadRequest("TEM QUE CONFIRMAR O EMAIL DOIDAO"));
            }

            if (await _userManager.IsLockedOutAsync(user))
            {
                return(BadRequest("DEU EXTREMAMENTE RUIM VAI TER QUE TROCAR A SENHA VACILAUM"));
            }

            if (!await _userManager.CheckPasswordAsync(user, userViewModel.Password))
            {
                await _userManager.AccessFailedAsync(user);

                return(Unauthorized("Usuario ou senha inválido"));
            }

            await _userManager.ResetAccessFailedCountAsync(user);

            var principal = await _userClaimsPrincipalFactory.CreateAsync(user);

            var identity = new ClaimsIdentity("Identity.Application");

            identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, user.Id));
            identity.AddClaim(new Claim(ClaimTypes.Name, user.UserName));

            await HttpContext.SignInAsync("Identity.Application", principal);

            return(Ok(principal));
        }