Mit ASP.Net, C#, MVC ichASP.Net MVC Ungültige Anmeldeversuch
Ungültige Anmeldeversuch.
wenn ich versuche mich anzumelden. Ich habe die E-Mail-Adresse (n) auskommentiert, da ich nur den Benutzernamen und das Passwort für die Anmeldung verwenden möchte. Beim Debuggen vergewissere ich mich, dass die Werte korrekt sind, und ich habe auch die Werte in der Tabelle überprüft, um sicherzustellen, dass keine versteckten Zeichen vorhanden sind, die den Benutzernamen oder das Passwort verlängern und auschecken.
Hier ist mein Code:
AccountViewModels.cs:
public class LoginViewModel
{
[Required]
[Display(Name = "UserName")]
public string UserName { get; set; }
//[Required]
//[Display(Name = "Email")]
//[EmailAddress]
//public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
Login.cshtml:
<div class="row">
<div class="col-md-8">
<section id="loginForm">
@using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<h4>Use a local account to log in.</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@*<div class="form-group">
@Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Email, "", new { @class = "text-danger" })
</div>
</div>*@
<div class="form-group">
@Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.UserName, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.Password, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Password, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<div class="checkbox">
@Html.CheckBoxFor(m => m.RememberMe)
@Html.LabelFor(m => m.RememberMe)
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Log in" class="btn btn-default" />
</div>
</div>
<p>
@Html.ActionLink("Register as a new user", "Register")
</p>
@* Enable this once you have account confirmation enabled for password reset functionality
<p>
@Html.ActionLink("Forgot your password?", "ForgotPassword")
</p>*@
}
</section>
</div>
<div class="col-md-4">
<section id="socialLoginForm">
@Html.Partial("_ExternalLoginsListPartial", new ExternalLoginListViewModel { ReturnUrl = ViewBag.ReturnUrl })
</section>
</div>
</div>
AccountController.cs:
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
var result = await SignInManager.PasswordSignInAsync(model.UserName, 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, RememberMe = model.RememberMe });
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
}
ich ziemlich viel Einsatz die Vorlagen liefern d von VS und änderte alles, was ich im Internet gefunden habe, so kann ich nicht verstehen, was falsch ist. Scheint so, als sollte es funktionieren ......
Haben Sie ssl eingeschaltet und aktiviert? Eine gute Möglichkeit zu sagen ist, ob Ihre Website standardmäßig https: // am Anfang ihrer Adresse hat. – Abob
Was ist der Wert von 'result' in Ihrem' AccountController'? Seltsamerweise, haben Sie völlig sicher gestellt, dass die Zugangsdaten * tatsächlich korrekt sind, anstatt dass die Logik inkorrekt ist? Vielleicht versuchen Sie, ein anderes lokales Konto zu erstellen und sich einzuloggen, um absolut sicher zu sein. –
Mit Hilfe Ihrer Antworten habe ich das Problem herausgefunden. Beim Schreiben des Codes und Testen und Erhalten von Fehlern aufgrund mehrerer Umstände bei der Registrierung hatte ich einige Benutzernamen, die nicht in der SQL-Tabelle enthalten sind. Diese Werte sind offensichtlich irgendwo gespeichert und ich muss sie irgendwie löschen, damit nichts wieder passiert. Um diese Frage richtig zu beantworten, kann jemand die Lösung zur Verfügung stellen, um diese Rogue-Benutzernamen loszuwerden? –