public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl ??= Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new WDPR_BuurtApp_3GUser {
                    Adres = Input.Adres, Voornaam = Input.Voornaam, Achternaam = Input.Achternaam, Foto = Input.Foto, PhoneNumber = Input.Telefoon, UserName = Input.Email, Email = Input.Email
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl },
                        protocol: Request.Scheme);

                    await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                                                      $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    {
                        return(RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl }));
                    }
                    else
                    {
                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(LocalRedirect(returnUrl));
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
Exemplo n.º 2
0
        //Indexpagina die wordt gebruikt om meldingen weer te geven, opgedeeld in pagina's
        public async Task <IActionResult> OverzichtMeldingen(int pagina, string sorteerType, string sorteerVolgorde, string filter, string status, string poster, DateTime date1, DateTime date2, bool likedby)
        {
            //Standaardwaarden indien parameters null zijn
            if (sorteerType == null)
            {
                sorteerType = "Datum";
            }
            if (sorteerVolgorde == null)
            {
                sorteerVolgorde = "aflopend";
            }
            if (status == null)
            {
                status = "Open";
            }
            if (poster == null)
            {
                poster = "Toon alles";
            }
            //Maak een user aan identiek aan de user die op dit moment is ingelogd. De FindByIDAsync methode zoekt een user in de usermanager.
            //De parameter is een UserID. Deze wordt gevonden doormiddel van this.user (het huidig ingelogde user van het type ClaimType), waarna de eerste
            //waarde hiervan wordt gevonden (van het type UserID).
            WDPR_BuurtApp_3GUser user = await _userManager.FindByIdAsync(this.User.FindFirst(ClaimTypes.NameIdentifier).Value);

            //Check of ingelogd user moderator is. Boolean wordt meegestuurd in de viewdata
            ViewData["UserIsModerator"] = false;
            if (await _userManager.IsInRoleAsync(user, "Moderator"))
            {
                ViewData["UserIsModerator"] = true;
            }
            ViewData["Likedby"]         = likedby;
            ViewData["Filter"]          = filter;
            ViewData["SorteerType"]     = sorteerType;
            ViewData["SorteerVolgorde"] = sorteerVolgorde;
            ViewData["Status"]          = status;
            ViewData["Poster"]          = poster;
            ViewData["Date1"]           = DateFormat(date1);
            ViewData["Date2"]           = DateFormat(date2);
            ViewData["LoggedInID"]      = this.User.FindFirst(ClaimTypes.NameIdentifier).Value;

            //Stuur een gepagineerde, gesorteerde en gefilterde lijst mee terug aan de view.
            return(View(await GepagineerdeLijst <Melding> .CreateAsync(DateRange(Filter(Sort(sorteerVolgorde, sorteerType), filter, status, poster, likedby), date1, date2), pagina, 5)));
        }
Exemplo n.º 3
0
        private async Task AddToModerator(IServiceProvider serviceProvider)
        {
            var UserManager = serviceProvider.GetRequiredService <UserManager <WDPR_BuurtApp_3GUser> >();

            //Lijst van UserID's die Moderator zijn/moeten worden
            string[]       userIDs = { "33eaec00-3b46-47f8-8621-53654eeacc4c" };
            IdentityResult addToRoleResult;

            foreach (var userID in userIDs)
            {
                //Controle of user in de array userIDs al moderator is
                WDPR_BuurtApp_3GUser user = await UserManager.FindByIdAsync(userID);

                var userIsModerator = await UserManager.IsInRoleAsync(user, "Moderator");

                //Maak user moderator indien nog geen moderator
                if (!userIsModerator)
                {
                    addToRoleResult = await UserManager.AddToRoleAsync(user, "Moderator");
                }
            }
        }