Beschränken Sie den Zugriff, bis der Benutzer eine E-Mail-link bestätigt hat

Ich bin, die um die Identität.Muster Beispiel und fand heraus, dass Benutzer weiterhin anmelden ohne einen Klick auf die E-Mail-Bestätigung nach der Anmeldung. Gibt es ein flag zum aktivieren zum einschränken der Benutzer von der Anmeldung, bis er/Sie klickt auf den bestätigen-link in seiner E-Mail? Oder irgendwelche extra-code, den ich brauche, um zu schreiben, um dies zu verhindern?

EDIT: Hinzugefügt wurde die Login-action-code aus den Proben

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {
        if (!ModelState.IsValid)
        {
            return View(model);
        }

        //This doen't count login failures towards lockout only two factor authentication
        //To enable password failures to trigger lockout, change to shouldLockout: true
        var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
        switch (result)
        {
            case SignInStatus.Success:
                return RedirectToLocal(returnUrl);
            case SignInStatus.LockedOut:
                return View("Lockout");
            case SignInStatus.RequiresVerification:
                return RedirectToAction("SendCode", new { ReturnUrl = returnUrl });
            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return View(model);
        }
    }
  • Was bedeutet der Login-action Aussehen mit der Probe? Vielleicht brauchen Sie, um zusätzliche Logik, um zu überprüfen, dass die "Bestätigung fahne" gegen den account eingestellt ist?
  • Können Sie uns den link zum Beispiel? Ich hatte einen Blick auf asp.net/identity/overview/features-api/..., und das einzige, was verhindert wird, für eine unbestätigte Konto ändern des Kennworts.
  • Zunächst müssen Sie ein flag in der Datenbank, so dass, wenn jeder Benutzer Registrieren, die für die erste Zeit, setzen Sie das flag auf "False" und ändern Sie das flag auf 'True', wenn ein Benutzer klickt auf die Bestätigungs-URL. Nun, wenn der Benutzer versucht, an login-check für das Flag, ob seine 'True' oder nicht. Wenn seine 'Wahre' der Benutzer geklickt hat, die einen Bestätigungslink, den Sie sonst nicht.
  • diese sind nicht die Antwort !! warum gibt es ein nutzlos SignInStatus.RequiresVerification!!!
InformationsquelleAutor icube | 2014-06-16
Schreibe einen Kommentar