我有一个带有模型类和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);
}
在方法上我读取了从客户端发送的密码属性,然后继续用盐哈希,替换发送的对象中的值并将其保存到数据库,然后我继续清空密码,以便散列结果没有回来。
在这种情况下,最佳做法是从响应中省略password属性,这也应该在检索表中的所有用户时发生,我只想返回特定信息,我的服务器生成的一些信息应该保留退出了回应。
如何从回复中选择或更改信息?我是否必须为我想要的每种反应创建其他DTO?