发布时如何读取属性,但Jsonignore进入JSON .NET Web API



我正在尝试通过使用json .net忽略属性,而当客户端获得对象时使用JSON忽略属性,但我希望在客户端处于帖子中时能够接收该属性'

例如,我有:

当客户端发布数据时,应发送密码:

{"email":"email@domain.com","password":"P@ssW0rd1!","firstname":"Joe","lastname":"Doe"}

但是,当客户端获得相同的对象时,我应该忽略密码:

{"email":"email@domain.com","firstname":"Joe","lastname":"Doe"}

类:

    public class User
    {
        public User()
        {
            this.JoinDate = DateTime.UtcNow;
            this.IsActive = false;
        }
        public int Id { get; set; }
        [Required(ErrorMessage = "Email is required!")]
        public string Email { get; set; }
        [JsonIgnore]
        public string HashedPassword { get; set; }
        [Required(ErrorMessage = "Password is required!")]
        public string Password { get; set; }
        public DateTime JoinDate { get; set; }
        [Required(ErrorMessage = "First Name is required!")]
        public string FirstName { get; set; }
        [Required(ErrorMessage = "Last Name is required!")]
        public string LastName { get; set; }
   }

任何想法,建议,评论???

在您的情况下,我建议您将用户类分为2个单独的模型类:

  1. 登录类,其中包含登录信息(即电子邮件,密码)
  2. UserInfo类,其余的元数据有关用户(即firstName,lastName)

以这种方式,我们不依赖于隐藏敏感数据的序列化器。

您可以使用[忽略的AtaMember]属性,并且盒外XML和JSON Formatters将支持它们,但不能保证任何其他自定义格式化器注册会支持它。

请注意,[jsonignore]仅在JSON格式中支持,而不是XML格式化。

相关内容

  • 没有找到相关文章

最新更新