0

Я пытаюсь скрыть свое поле PasswordHash из таблицы User, пометив его атрибутом [JsonIgnore]. localhost/User query получает список пользователей и исключает PasswordHash из результатов, но если я напишу свой запрос как таковой: localhost/User? $ select = PasswordHash, он возвращает данные, хотя он должен игнорировать его !!!

Я подвергаю свою таблицу Entity Framework пользователя с помощью ApiController с [EnableQuery] GetAll(); метод, который возвращает IQueryable < Пользователь > как результат. Пожалуйста, помогите!

+2

Возможно, вы должны использовать DTO вместо того, чтобы напрямую подвергать вашу EF-модель внешнему миру. –

+0

Возможный дубликат [Исключить свойство из ответа OData (EF) WebApi в C#] (http://stackoverflow.com/questions/27781607/exclude-property-from-webapi-odata-ef-response-in-c-sharp) –

ответ

0

Я полностью согласен с предложением Брайана Роджерса использовать DTO, который предоставляет только полей. Это cheep и безопасно.

Если вы решили сохранить существующую модель, вы можете посмотреть на EDM Security guide, который предлагает использовать атрибут [IgnoreDataMember].

Смежные вопросы