不是一个主要问题,但绝对是一个很好的问题。
例如,我有一个看起来像这样的模型(我不是为了节省阅读时间而删减了一些,我确实有确认字段等:)):
public class NewUser
{
[Required]
public string Username{ get; set; }
[Required]
public string Password{ get; set; }
public string Salt{ get; set; }
}
在发布后(验证后)的代码中,我创建了一个盐,用于以一种方式加密密码,将它放在模型中非常有用(我知道我可以将其省略,但我宁愿不这样做)。
如果在发布时,用户添加到他们的 querystring &salt=blahblahblah
,一旦页面被回发并且 MVC 匹配模型,它会blahblahblah
按预期将值分配给我的模型,我没有遇到问题,因为我总是可以覆盖这个。
有什么方法可以让 MVC 不会将模型中的值分配给从回发发送的内容,因为我不希望它有可能设置其他模型中的某些值(我让我的解决方法将它们重置为应有的状态,但是如果有人想尝试破解某些值,则缺少此方法可能会导致问题)。