[HttpPost]
[Route("LoginTest")]
public IActionResult Authenticate([FromBody] LoginDTO login)
{
// Fetch user
var user = db.Users.FirstOrDefault(u => u.Username == login.Username && u.Password == login.Password);
if (user == null)
{
return Unauthorized("Invalid username or password.");
}
if (user.UserType == "Client")
{
// code throws error on this line
var client = db.Customers.FirstOrDefault(c => c.UserId == user.UserId);
if (client == null)
{
// Handle case where client is null
return NotFound("Client data not found.");
}
UserCDTO cDTO = new UserCDTO
{
Username = user.Username,
Address = user.Address,
CustomerName = client.CustomerName,
Age = client.Age,
Gender = client.Gender,
ContactInfo = client.ContactInfo,
};
return Ok(cDTO);
}
}
此代码处理 Web 应用程序的用户身份验证。它检查提供的用户名和密码是否与数据库中的用户匹配。如果用户是客户,它将检索他们的详细信息并且(这是它停止的地方)。
否则,它会返回未经授权或未找到的消息。
检查您的客户类型。您的数据库中似乎有一个 int32 列,无法转换为您的客户类型属性之一,它是一个字符串。