Число столбцов в базе данных хранятся в зашифрованном виде (и мы застряли с этим в обозримом будущем)Перехватив и шифрование данных в OData фильтре, прежде чем она потребляется в ASP.Net WebAPI
http://localhost/Car?$filter=Name eq 'Ford'
Я хотел бы перехватить запрос и обновить фильтр так, чтобы он выглядел как «Name eq» ENCRYPTED_TEXT », чтобы запрос мог найти запись в базе данных.
Я посмотрел на queryOptions.Filter, и это выглядит правильно, но я не уверен, что это лучший способ сделать это? Нужно ли просто де-построить фильтр, используя строковые манипуляции? или есть лучший способ? (я не хочу изучать каждую странность синтаксического анализа строки запроса odata, если я могу ее избежать)
FYI, мне нужно сделать это для нескольких столбцов в каждой таблице. Я выставляю так многократно используемую C# требуется решение.
Спасибо за вашу помощь заранее!
Джо
Джейсон, спасибо за ответ. Я знаю, что я могу напрямую использовать queryOptions. Вопрос заключается в том, что лучше всего подходит для модификации фильтра queryOptions, к которому не привязано ваше сообщение, с которым вы связаны. –
Не уверен, что это лучшая практика, но я бы, вероятно, рассмотрел создание атрибута пользовательского атрибута действия, который наследует класс QueryableAttribute специально для этой специальной обработки. Затем вы можете применить этот настраиваемый атрибут к своим методам. Вот MSDN для атрибута ... http://msdn.microsoft.com/en-us/library/system.web.http.queryableattribute%28v=vs.111%29.aspx – Jason