首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >阻止Post请求在Asp.Net Core2.0API中设置某些值

阻止Post请求在Asp.Net Core2.0API中设置某些值
EN

Stack Overflow用户
提问于 2018-06-11 08:01:10
回答 1查看 145关注 0票数 1

我有一个带有联系人模型的ASP.NET Core2.0API,其中包含以下字段:

IDNameCompanyProfilePicFileNameEmailBirthDayPhoneNumberWorkPhoneNumberHomeAddress

POST请求允许客户端创建联系人记录。但它也可以设置IDProfilePicFileName的值,这是我想要防止的。

如何防止post请求设置某些值(即IDProfilePicFileName)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-11 09:16:27

如何防止post请求设置某些值(即ID和ProfilePicFileName)。

通过创建特定于所讨论的操作的模型来排除不需要的属性。

public class ContactViewModel {
    public string Name { get; set; } 
    public string Company { get; set; }
    public string Email { get; set; }
    public DateTime BirthDay { get; set; }
    public string PhoneNumberWork { get; set; }
    public string PhoneNumberHome { get; set; }
    public string Address { get; set; }
}

这样,操作将只具有由模型绑定器填充的所需属性

[HttpPost]
public IActionResult Post([FromBody]ContactViewModel contact) {
    //...
}

在操作中,视图模型可以映射回模型。

尽量避免将持久性模型用作数据传输对象,因为它可能会泄漏不打算通过网络发送的数据。它还可以暴露允许发送不打算发送的额外数据的向量。

操作应该只接受显式需要的内容(显式依赖原则)。并且应该只暴露必要的内容。

这样,客户端提供的附加值就不重要了。模型绑定器将只绑定必要的值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50789079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档