Arrière-plan:
J'ai une très grande OData modèle qui est en train d'utiliser des Services de Données WCF (OData) pour l'exposer. Cependant, Microsoft a déclaré que les Services de Données WCF est morte et que l'API Web OData est la façon dont ils vont.
Donc, je suis à la recherche de façons d'obtenir de l'API Web OData pour le travail ainsi que les Services de Données WCF.
Problème D'Installation:
Certaines parties du modèle n'ont pas besoin d'être sécurisé, mais certains le font. Par exemple, la liste de Clients a besoin de sécurité permettant de limiter le lire, mais j'ai d'autres listes, comme la liste des Produits, que chacun peut consulter.
Les Clients de l'entité a de nombreuses de nombreuses associations qui peuvent l'atteindre. Si vous comptez 2+ niveau des associations, ce sont plusieurs centaines de façons que les Clients peuvent être atteint (à travers les associations). Par exemple Prodcuts.First().Orders.First().Customer
. Étant donné que les Clients sont au cœur de mon système, vous pouvez commencer avec n'importe quelle entité et, éventuellement associé à votre façon à la liste de Clients.
Les Services de Données WCF a une façon pour moi de mettre la sécurité sur une entité spécifique, par l'intermédiaire d'une méthode comme ceci:
[QueryInterceptor("Customers")]
public Expression<Func<Customer, bool>> CheckCustomerAccess()
{
return DoesCurrentUserHaveAccessToCustomers();
}
Comme je regarde l'API Web OData, je ne suis pas le voir quelque chose comme cela. En Plus je suis très inquiet parce que les contrôleurs que je fais ne semblent pas être appelé lorsqu'une association est suivie. (Ce qui signifie que je ne peux pas mettre de sécurité dans l' CustomersController
.)
Je suis inquiet que je vais avoir essayer en quelque sorte énumérer toutes les façons que les associations peuvent certains de la façon de faire pour les clients et les mettre à la sécurité de chacun.
Question:
Est-il un moyen de mettre la sécurité sur une entité spécifique à l'API Web OData? (Sans avoir à énumérer toutes les associations qui pourraient en quelque sorte développer jusqu'à cette entité?)