【问题标题】:Model binding safety with ASP.Net, EF, database first与 ASP.Net、EF、数据库优先的模型绑定安全
【发布时间】:2019-10-31 14:56:24
【问题描述】:

简介:绑定来自 HTTP PUT 请求以更新某些记录。模型是从 db first EF 搭建的,所以我不确定注解是一个可行的解决方案。

我不希望人们能够根据 PUT 请求将IsAdmin = true 保存(例如)到用户模型。

这篇文章讲的是注解模型,我很喜欢,但是从数据库更新模型时,会不会每次都把注解吹走?

EF 是否支持类似 DTO 的东西?我找不到关于这种情况的任何东西,这一定很常见。我错过了什么?

【问题讨论】:

  • 您可以为Http Put请求定义ViewModel,不会暴露IsAdmin等敏感信息,然后根据控制器动作中的VIewModel更新模型。

标签: asp.net-core-mvc


【解决方案1】:

对于模型绑定,我假设您发送带有表单数据的请求,如果是这样,您可以尝试BindNever like

public class InstructorWithDictionary
{
    [BindNever]
    public int ID { get; set; }

使用BindNever,无论你在Put请求中设置什么,IsAdmin都不会被设置。

【讨论】:

    猜你喜欢
    • 2011-04-17
    • 2015-12-07
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 2012-04-27
    • 2013-11-25
    相关资源
    最近更新 更多