我有一个带有模型类和 DTO 类的移动服务。我使用 Fluent API 映射这些并让它工作以执行 CRUD 操作,但在某些情况下返回的 JSON 响应存在问题。
以具有用户名和密码的用户实体为例。要注册用户,我有这样的 PostUserDTO 方法:
// POST tables/UserDTO
public async Task<IHttpActionResult> PostUserDTO(UserDTO item)
{
string hashString = PasswordHash.CreateHash(item.Password);
item.Password = hashString;
UserDTO current = await InsertAsync(item);
current.Password = "";
return CreatedAtRoute("Tables", new { id = current.Id }, current);
}
在该方法中,我读取了从客户端发送的密码属性,然后用盐对其进行哈希处理,替换发送的对象中的值并将其保存到数据库中,然后我继续清空密码,因此哈希结果不是回来。
在这种情况下,最好的做法是从响应中省略密码属性,这也应该在检索表中的所有用户时发生,我只想返回特定信息,我的服务器生成的一些信息应该远离回复。
如何选择或更改回复中的信息?我是否必须为我想要的每种响应创建其他 DTO?