IdentityCore登录或注册不会重定向回主页/索引

时间:2017-09-18 13:05:36

标签: c# asp.net-identity asp.net-core-2.0

我遇到IdentityCore问题。 当我按下登录表单上的登录按钮时,我不会被重定向到索引视图,与注册按钮相同。

这是调试的方式

  1. 我正确填写表格
  2. 我按下登录按钮
  3. 登录操作名为
  4. Modelstate有效,结果成功
  5. “用户已登录”已记录
  6. 返回RedirectToLocal(null)
  7. 依赖注入调用
  8. 家庭控制器中的索引操作称为
  9. 正确加载菜肴
  10. 它返回View(菜肴)
  11. 它保留在登录视图中,而不是转到home / index
  12. 登录表格:

           <form asp-route-returnurl="@ViewData["ReturnUrl"]" method="post">
                <h4>Use a local account to log in.</h4>
                <hr />
                <div asp-validation-summary="All" class="text-danger"></div>
                <div class="form-group">
                    <label asp-for="Email"></label>
                    <input asp-for="Email" class="form-control" />
                    <span asp-validation-for="Email" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <label asp-for="Password"></label>
                    <input asp-for="Password" class="form-control" />
                    <span asp-validation-for="Password" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <div class="checkbox">
                        <label asp-for="RememberMe">
                            <input asp-for="RememberMe" />
                            @Html.DisplayNameFor(m => m.RememberMe)
                        </label>
                    </div>
                </div>
                <div class="form-group">
                    <button type="submit" class="btn btn-default">Log in</button>
                </div>
                <div class="form-group">
                    <p>
                        <a asp-action="ForgotPassword">Forgot your password?</a>
                    </p>
                    <p>
                        <a asp-action="Register" asp-route-returnurl="@ViewData["ReturnUrl"]">Register as a new user?</a>
                    </p>
                </div>
            </form>
    

    登录操作:

        public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {lockoutOnFailure: true
                var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
                if (result.Succeeded)
                {
                    _logger.LogInformation("User logged in.");
                    return RedirectToLocal(returnUrl);
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Invalid login attempt.");
                    return View(model);
                }
            }
    
            // If we got this far, something failed, redisplay form
            return View(model);
        }
    

    HomeController中:

    public class HomeController : Controller
    {
        private ApplicationDbContext _context;
    
        public HomeController(ApplicationDbContext context)
        {
            _context = context;
        }
    
        public IActionResult Index()
        {
            var dishes = _context.Dishes
               .Include(d => d.IngredientDish)
               .ThenInclude(id => id.Ingredient)
               .Include(d => d.Category)
               .ToList();
    
            return View(dishes);
        }
    }
    

    如果您需要更多代码邮件或信息,请告诉我

0 个答案:

没有答案