如何在Azure移动服务响应中隐藏属性?

时间:2015-01-22 18:28:51

标签: azure-mobile-services dto asp.net-apicontroller

我有一个带有模型类和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?

0 个答案:

没有答案