asp.net MVC模型绑定一个字节数组

时间:2014-03-13 18:49:18

标签: c# asp.net-mvc asp.net-mvc-4

我需要接受模型中的字节数组并使其正确绑定。这不是用于文件,而是用于保护字符串中的敏感信息不被中断,从而永久保存在内存中。我有以下模型类。这是一个更大的模型,我不想在这篇文章中单独采取行动。

public class ParentModel 
{
    //a lot of properties
    public SensitiveData Sensitive { get; set; }
}

public class SensitiveData
{
    public byte[] Value { get; set; }
}

返回响应将是

public class ParentViewModel 
{
    //a lot of properties
    public SensitiveDataViewModel Sensitive {get;set;}
}

public class SensitiveDataViewModel
{
    public int Id { get; set; }
    public string Maksed { get; set; }
    public string Hash { get; set; }
}

据我所知,这可能是分段上传,但字节数组最多为32个字符,而且不是文件。如果它是一个字符串,它将被卡在内存中的明文中。我无法使应用程序获得子弹证明,但我确实希望尽快清除数据,以便我更难以获取此数据并减少它在内存中的生存时间。如果将整个请求放在一个字符串中,我无法做任何关于MVC做什么的事情。

1 个答案:

答案 0 :(得分:0)

解决这个问题的一种方法是使用CompilationRelaxationsAttribute:

http://msdn.microsoft.com/en-US/library/system.runtime.compilerservices.compilationrelaxationsattribute.aspx

来自msdn docs(http://msdn.microsoft.com/library/system.string.intern.aspx):

  

.NET Framework 2.0版引入了   CompilationRelaxations.NoStringInterning枚举成员。该   NoStringInterning成员将程序集标记为不需要   string-literal interning。您可以将NoStringInterning应用于   使用CompilationRelaxationsAttribute属性进行汇编。