Там нагрузки ресурсов для этого на Google, но я не могу полностью понять, что мне нужно сделать в моем случае:ASP.NET MVC Вредные практики: Дополнительный Суб с требуемым свойством
У меня есть этот класс:
public class CompanyLanguage : EntityBase
{
public int CompanyId { get; set; }
public int LanguageId { get; set; }
public bool IsDefault { get; set; }
public virtual Company Company { get; set; }
public virtual Language Language { get; set; }
}
Language
определяется как:
public class Language:EntityBase
{
[Required]
[DisplayName("Language Code")]
public string LanguageCode { get; set; }
[Required]
[MaxLength(2, ErrorMessage ="2 characters maximum")]
[DisplayName("2 Char Language Code")]
public string LanguageCode2Char { get; set; }
[Required]
[DisplayName("Language Name")]
public string LanguageName { get; set; }
public virtual List<LabelLanguage> LabelLanguages { get; set; }
}
Забегая Fortify Scan возвращает выпуск ниже в качестве первоочередной задачи:
(ASP.NET MVC Вредные практики: Дополнительный Суб с требуемым свойством)
Мы не можем запустить Fortify сканирование - это время выполнения кем-то еще, так что мне нужно, чтобы получить изменения вправо так, он не возвращается прямо.
Все ресурсы, на которые я смотрел, предполагают, что могут быть сделаны атаки подпольной атаки, т. Е. Нуль Language
, хотя Language
имеет некоторые требуемые свойства.
Для меня это действительный сценарий - требуемые свойства Language
требуются только в том случае, если Language
не имеет значения.
Итак, что я должен сделать, чтобы решить эту проблему? Нужно ли делать public int LanguageId { get; set; }
, или public virtual Language Language { get; set; }
или оба?
Или я совершенно неправ, я должен сделать что-то еще? Как я уже сказал, я не могу проверить их, поскольку программное обеспечение должно быть отправлено на тест, или я бы попробовал все виды.
Итак, вы отправляете эту ef-объект непосредственно в представление без модели просмотра? – Fran
Я - я читал, что я действительно должен использовать модели просмотра, но моя модель представления в буквальном смысле была бы точно такой же, как у сущности, которая вроде бы добавляет намного больше кода и обслуживания для не слишком высокой награды. Как вы думаете? – Rick
хорошо вознаграждение - это разделение проблем и более чистый код. Поскольку вы отправляете объект объединения «много ко многим» в представление, вам, вероятно, не нужна вся эта информация. было бы замечательно видеть действия представления и контроллера, чтобы увидеть, что вы делаете, но я предполагаю, что у вас есть выпадающие списки для компании и языка.Если это так, единственное, что нужно для возврата к представлению, - это списки идентификаторов и описаний для каждого из выпадающих и неполных ef-объектов. – Fran