gpt4 book ai didi

asp.net-mvc - 如何在 POST 时读取属性但 JsonIgnore GET 在 Json .NET Web API 中

转载 作者:行者123 更新时间:2023-12-04 05:25:20 24 4
gpt4 key购买 nike

我试图通过在客户端获取对象时使用 Json Ignore 属性来使 Json .NET 忽略属性,但我希望能够在客户端 POST 时接收该属性

在示例中,我有:

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

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

但是,当客户端获取相同的对象时,我应该忽略密码:
{"email":"email@domain.com","firstname":"Joe","lastname":"Doe"}

类(class):
    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; }

}

任何想法,建议,意见???

最佳答案

在您的场景中,我建议您将 User 类拆分为 2 个单独的模型类:

  • 登录类,包含登录信息(即邮箱、密码)
  • UserInfo 类,其中包含有关用户的其余元数据(即名字、姓氏)

  • 这样,我们就不必依赖序列化程序来隐藏敏感数据。

    您可以使用 [IgnoreDataMember] 属性,开箱即用的 XML 和 JSON 格式化程序将支持它们,但不能保证注册的任何其他自定义格式化程序将支持它。

    请注意,[JsonIgnore] 仅在 JSON 格式化程序中受支持,而在 XML 格式化程序中不受支持。

    关于asp.net-mvc - 如何在 POST 时读取属性但 JsonIgnore GET 在 Json .NET Web API 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13261760/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com