从Asp.net Core MVC 2.1项目中的“登录”页面限制用户访问

时间:2019-03-18 05:36:30

标签: c# asp.net-core-mvc asp.net-core-2.1

我目前正在做一个Asp.net核心2.1 MVC项目。在项目的登录页面中,我想检查用户并授予他们访问不同页面的权限。也就是说,如果用户是管理员,则应将其重定向到管理页面,如果是本地用户,则应将其重定向到本地用户注册页面。我用于检查的代码如下。 在我的控制器中,

`var user = await _userManager.FindByNameAsync(UserName);
        if (user != null)
        {
            var result = await _signInManager.PasswordSignInAsync(user,Password, false, false);
            if (result.Succeeded)
            {   
               var log = await _context.LoginModels
                        .FirstOrDefaultAsync(m => m.UserName ==UserName && m.Password == Password);

                if (log.UserType == "Admin")
                    return RedirectToAction("Index", "Admin");
                if (log.UserType == "User")
                return RedirectToAction("Index", "Home");

            }
        }
        TempData["LoginFeedBack"] = "JSalert();";

        ModelState.AddModelError("", "User name/password not found");
        return  RedirectToAction("Login","Account");
    }`

我有2个用户类型,分别是admin和user。当前的问题是,只有具有访问权限或循环的数据库中的第一个用户(是管理员)没有检查其他用户。它根本不授予其他用户任何访问权限。 我该如何解决这个问题?

0 个答案:

没有答案