我如何验证用户,如何根据登录人获得用户的名字和第二个名字



下面是我的登录功能,我想更改以下内容:

  1. 区分管理员登录和用户登录以显示不同的页面布局
  2. 根据登录用户获取用户的名字和第二个名字

请问我如何才能做到这一点——任何建议或例子?

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(Customers customer)
{
if (ModelState.IsValid)
{
var user = await _context.Customers.SingleOrDefaultAsync(m => m.Email == customer.Email && m.Password == customer.Password);
if (user != null)
{

return RedirectToAction("Account", "Account");
}
else 
{
ViewBag.error = "Login Failed";
return RedirectToAction("Login");
}
}
else
{

return RedirectToAction("Index", "Home");
}
}
  • 您需要在数据库的登录表中维护Role列值
  • 将值添加到"角色"列例如:管理员角色-1,用户-0
  • 更改登录过程以返回Role、FirstName、LastName而不是count
Select Role,Password,FirstName,LastName from Users where Username=@Username and Password=@Password
  • 对用户进行身份验证(如果密码匹配,则进行有效身份验证(后,根据角色重定向到视图
if (Validate_User(Customers customer))
{
if (customer.Role == "1")
{
return View("AdminView");
}
else
{
return View("UserView");
}
ViewBag.FirstName=customer.FirstName;
ViewBag.LastName=customer.LastName;
}
else
{
//handle failed login    
ViewBag.error = "Login Failed";
return RedirectToAction("Login");
}

请参阅基于角色的访问

相关内容

最新更新