.NET MVC登录异常:无论凭据正确与否均跳转至首页
问题原因与解决方法
你的问题核心在于登录表单的提交目标错误,表单直接提交到了Home控制器的Index动作,完全绕过了Account控制器里的登录验证逻辑,所以不管输入正确与否都会直接跳转到首页。
修复步骤
1. 修改Login.cshtml的表单提交目标
把表单的asp-controller改为Account,asp-action改为Login,这样提交时才会触发AccountController里的[HttpPost] Login方法进行验证,同时补充错误信息显示逻辑:
@{ ViewData["Title"] = "Simple View"; } <h2>@ViewData["Title"]</h2> <!-- 修正表单提交目标到Account控制器的Login动作 --> <form asp-controller="Account" asp-action="Login" method="post"> <!-- 显示登录失败的错误提示 --> @if (!ModelState.IsValid) { <div class="text-danger"> @Html.ValidationSummary(false, "", new { @class = "text-danger" }) </div> } <div> <label for="username">Username:</label> <input type="text" id="username" name="username" /> </div> <div> <label for="password">Password:</label> <input type="password" id="password" name="password" /> </div> <button type="submit">Login</button> </form>
2. 关键说明
- 表单提交目标修正后,输入的用户名和密码才会被传递到AccountController的验证方法中执行判断逻辑
- 新增的
@Html.ValidationSummary会在登录失败时,显示你在控制器中添加的Invalid username or password.错误提示
内容的提问来源于stack exchange,提问作者sedat
相关产品推荐
相关产品推荐

