У меня есть несколько ролей, которые могут получить доступ к моей службе odata и основаны на роли, мне нужно скрыть несколько столбцов. Как я могу это достичь?WebApi Odata, ограничьте несколько столбцов на основе роли пользователя
1
A
ответ
0
Настроить DefaultODataSerializerProvider.
public override ODataSerializer GetODataPayloadSerializer(IEdmModel model, Type type, HttpRequestMessage request)
Override метод GetODataPayloadSerializer, получить роль по запросу, хранить его в Cusomer сериализатором, вернуть сериалайзер клиентов.
Если вы возвращаете объект, переделывание ODataEntityTypeSerializer
public override ODataEntry CreateEntry(SelectExpandNode selectExpandNode, EntityInstanceContext entityInstanceContext)
Override CreateEntry Метод, удалить свойства через роль. например:
var idProp = selectExpandNode.SelectedStructuralProperties.FirstOrDefault(p => p.Name == "Id");
if (idProp != null)
{
selectExpandNode.SelectedStructuralProperties.Remove(idProp);
}
ODataEntry entry = base.CreateEntry(selectExpandNode, entityInstanceContext);
return entry;
Смежные вопросы
- 1. MVC 5 & JQuery DataTables Отображение столбцов на основе роли пользователя
- 2. WebApi OData для безопасности пользователя по свойству
- 3. Поле Deserialise JSON на основе роли пользователя
- 4. Фильтрация элементов меню на основе роли пользователя
- 5. angularJS несколько основных страниц на основе роли
- 6. Использование WebApi + Odata на Edmx
- 7. Rails: JavaScript на основе роли пользователя
- 8. показать записи на основе роли пользователя
- 9. ASP.NET перенаправляет пользователя на основе роли
- 10. Создать меню динамически на основе роли пользователя
- 11. Изменить значение атрибута на основе роли пользователя
- 12. Предотвратить Войти на основе роли пользователя - Laravel
- 13. Silverlight - Контроль видимости на основе роли пользователя
- 14. Углового $ routeProvider на основе роли пользователя
- 15. Render JSF-компонент на основе роли пользователя
- 16. MVC - представление переключателя на основе роли пользователя
- 17. Ограничить пользователя на основе их роли
- 18. Изменение продукта Woocommerce на основе роли пользователя
- 19. OData WebAPI 2 Комплексная авторизация
- 20. Архитектура безопасности в OData WebAPI
- 21. Включает ли WebAPI OData?
- 22. WebApi oData возвращается 406
- 23. WebApi OData Metadata/Описание
- 24. Контекст маршрутизации OData & WebAPI
- 25. Какие WebAPI OData имен
- 26. WebAPI OData Datetime serialization
- 27. WebAPI Odata Удалить действие
- 28. WebAPI и OData OrderBy
- 29. Авторизовать пользователя на основе имени пользователя в webapi
- 30. WebAPI OData v4 Функция регистрации
Где ваш код! что вы уже пробовали? – Marusyk
Итак, это то, что я пробовал: 1. Исследуемые Queryinterceptors, но они являются особенностью wcf, а не webapi. Поправьте меня, если я ошибаюсь. Я не мог найти примеры, связанные с webapi. 2. Я попытался выполнить роль в моем контроллере и написать оператор выбора linq для проецирования базового объекта. Что-то вроде: .Mydata.Select (p => new myobject {myobject.Property1 = p.property1, ....}; на основе роли. Но это дает мне ошибку, потому что я пытаюсь спроектировать существующий объект. – Maggi
Have вы пытались добавить '.ToList(). Выберите (...)' для этого? Вам часто нужно переходить от sql к объектам к объектам для объектов, чтобы проектировать работу. –