Sys_User user = await repository.FindAsIQueryable(x => x.UserName == loginInfo.UserName) .FirstOrDefaultAsync(); if (user == null || loginInfo.Password.Trim().EncryptDES(AppSetting.Secret.User) != (user.UserPwd ?? "")) return webResponse.Error(ResponseType.LoginError);里User.Userpwd的user为空
时间: 2024-04-12 18:30:56 浏览: 8
根据你提供的代码,如果 `user` 对象为空,那么访问 `user.UserPwd` 属性就会引发空引用异常。为了避免这种情况,你可以在访问 `user.UserPwd` 之前添加空引用检查。
```
Sys_User user = await repository.FindAsIQueryable(x => x.UserName == loginInfo.UserName)
.FirstOrDefaultAsync();
if (user == null || loginInfo.Password.Trim().EncryptDES(AppSetting.Secret.User) != (user.UserPwd ?? ""))
return webResponse.Error(ResponseType.LoginError);
// 添加空引用检查
if (!string.IsNullOrEmpty(user.UserPwd))
{
// 在这里使用 user.UserPwd
// ...
}
```
在上面的代码中,我们首先检查了 `user` 是否为空,如果为空或密码不匹配,则返回登录错误。然后,我们使用 `!string.IsNullOrEmpty(user.UserPwd)` 来检查 `user.UserPwd` 是否为空或者为null。只有当 `user.UserPwd` 不为空时,我们才会进入到使用 `user.UserPwd` 的代码块中。
这样可以确保在访问 `user.UserPwd` 属性之前,先进行空引用检查,并避免空引用异常。