C# 登录后不重定向到本地(索引)

C# 登录后不重定向到本地(索引),c#,asp.net-core,C#,Asp.net Core,登录后操作中的重定向有一个奇怪的问题。在登录页面上输入详细信息后,虽然它登录了用户,但不会重定向到主页。我在本地运行它,按下“登录”按钮后,它会停留在浏览器中继续加载(并且永远不会结束),关闭并重新运行应用程序后,我会看到用户登录,并且在我的部分视图中插入它时,我可以看到用户的名称。所以,这意味着登录可以工作,但重定向操作不起作用。有趣的是,当我注销用户时,它会成功地将他重定向到主页,但在登录时,不会 详情如下: LoginView模型 public int Id { get; set;

登录后操作中的重定向有一个奇怪的问题。在登录页面上输入详细信息后,虽然它登录了用户,但不会重定向到主页。我在本地运行它,按下“登录”按钮后,它会停留在浏览器中继续加载(并且永远不会结束),关闭并重新运行应用程序后,我会看到用户登录,并且在我的部分视图中插入它时,我可以看到用户的名称。所以,这意味着登录可以工作,但重定向操作不起作用。有趣的是,当我注销用户时,它会成功地将他重定向到主页,但在登录时,不会

详情如下:

LoginView模型

    public int Id { get; set; }

    [Required]
    public string UserName { get; set; }

    [Required]
    [DataType(DataType.Password)]
    public string Password { get; set; }

    public bool RememberMe { get; set; }
}
} 账户控制员

public class AccountController : Controller
{
    private readonly UserManager<AdUser> _userManager;
    private readonly SignInManager<AdUser> _signInManager;
    private readonly SamirDbContext _samirDbContext;
  
    public AccountController(UserManager<AdUser> userManager, SignInManager<AdUser> signInManager, SamirDbContext samirDbContext)
    {
        _userManager = userManager;
        _signInManager = signInManager;
        _samirDbContext = samirDbContext;
    }

    //Helper
    private void AddErrors(IdentityResult result)
    {
        foreach (var error in result.Errors)
        {
            ModelState.AddModelError(string.Empty, error.Description);
        }
    }


    [HttpGet]
    [AllowAnonymous]
    public IActionResult RegisterUser()
    {
        if (_signInManager.IsSignedIn(User))
        {
            return RedirectToAction(nameof(HomeController.Index), "Home");
        }
        return View();
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> RegisterUser(RegisterViewModel registerViewModel)
    {
        if (ModelState.IsValid)
        {
            registerViewModel.SiteUser = await _samirDbContext.SiteUsers.LastOrDefaultAsync();

            AdUser adUser = await _userManager.FindByEmailAsync(registerViewModel.Email);
            if (adUser != null)
            {
                ModelState.AddModelError("", "This user already exists");
            }
            else
            {
                adUser = new AdUser
                {
                    UserName = registerViewModel.UserName,
                    Email = registerViewModel.Email,
                    SiteUserId = registerViewModel.SiteUser.Id,
                    Name = registerViewModel.FullName,
                    Phone = registerViewModel.Phone
                };

                if(registerViewModel.Password == registerViewModel.ConfirmPassword)
                {
                    IdentityResult userResult = await _userManager.CreateAsync(adUser, registerViewModel.Password);

                    if (userResult.Succeeded)
                    {
                        IdentityResult result = await _userManager.AddToRoleAsync(adUser, RoleType.User.ToString());

                        if (result.Succeeded)
                        {
                            await _signInManager.SignInAsync(adUser, isPersistent: false);
                            return RedirectToAction(nameof(HomeController.Index), "Home");
                        }
                        else
                        {
                            ModelState.AddModelError("", "Rol yaranmadi");
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "Şifrənin tərkibində ən azı bir kiçik və böyük hərflə simvol olmalıdır");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Təsdiq şifresi fərqli yazılıb");
                }
            }
        }
        return View(registerViewModel);
    }

    [HttpGet]
    [AllowAnonymous]
    public async Task<IActionResult> LoginUser(string returnUrl = null)
    {
        await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme);
        ViewData["ReturnUrl"] = returnUrl;
   
        return View();
    }

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> LoginUser(LoginViewModel loginViewModel)
    {

        if (ModelState.IsValid)
        {
            AdUser currentuser = await _userManager.FindByEmailAsync(loginViewModel.UserName);

            Microsoft.AspNetCore.Identity.SignInResult signInResult = await _signInManager.PasswordSignInAsync(loginViewModel.UserName, loginViewModel.Password, loginViewModel.RememberMe, lockoutOnFailure: true);

            if (signInResult.Succeeded)
            {
                var user = this.User;
              return RedirectToAction(nameof(HomeController.Index), "Home");
            }
            else
            {
                ModelState.AddModelError("", "Username or password is incorrect");

            }
        }
        return View(loginViewModel);
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> LogoutUser()
    {
        await _signInManager.SignOutAsync();
        return RedirectToAction(nameof(HomeController.Index), "Home");
    }
公共类AccountController:控制器
{
专用只读用户管理器
另外,我想补充一点,我有一个类似的项目,使用相同的编码方式,但这是可行的。是什么导致了这个问题? 我还清除了浏览器历史记录,以确保会话中没有任何内容被卡住。同样,没有工作


请协助解决。提前感谢!

我觉得登录过程不正确,请参阅:
  @model Samirad.Models.ViewModels.LoginViewModel
<section class="login py-5 border-top-1">
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-lg-5 col-md-8 align-item-center">
                <div class="border">
                    <h3 class="bg-gray p-4">Login Now</h3>
                    <form method="post" asp-action="LoginUser" asp-controller="Account">
                        <div asp-validation-summary="ModelOnly"></div>
                        <fieldset class="p-4">
                            <input asp-for="UserName" type="text" placeholder="Username" class="border p-3 w-100 my-2">
                            <span asp-validation-for="UserName"></span>
                            <input asp-for="Password" type="password" placeholder="Password" class="border p-3 w-100 my-2">
                            <span asp-validation-for="Password"></span>
                            <div class="loggedin-forgot">
                                <input asp-for="RememberMe" type="checkbox" id="keep-me-logged-in">
                                <label for="keep-me-logged-in" class="pt-3 pb-2">Keep me logged in</label>
                            </div>
                            <button type="submit" class="d-block py-3 px-5 bg-primary text-white border-0 rounded font-weight-bold mt-3">Log in</button>
                            <a class="mt-3 d-block  text-primary" href="#">Forgot Password?</a>
                            <a class="mt-3 d-inline-block text-primary" href="register.html">Register Now</a>
                        </fieldset>
                    </form>
                </div>
            </div>
        </div>
    </div>
</section>