Limiter l'accès à un service WCF REST (webHttpBinding) à l'aide du fournisseur d'adhésion ASP.NET?
-
20-08-2019 - |
Question
J'ai trouvé sur le Web de nombreux documents sur l'utilisation du fournisseur d'adhésion ASP.NET avec wsHttpBindings, mais je n'ai vu aucune référence à son utilisation avec webHttpBindings.
Je recherche un système qui fonctionnera dans deux scénarios:
- L'utilisateur est connecté à un site Web asp.net et ce dernier appelle le service.
- L'utilisateur accède au service directement via REST.
Est-ce possible en utilisant le framework intégré (c'est-à-dire juste à travers la configuration)? Si oui, comment configurer le service? Et comment l'utilisateur transmet-il les informations d'identification au service REST?
La solution
La meilleure source que j'ai trouvée se trouve ici: http://www.leastprivilege.com/FinallyUsernamesOverTransutInHistoire .aspx
Le site contient également de nombreuses autres informations sur la configuration de modules HTTP pour gérer l’authentification de base (ce que je suppose que vous allez utiliser car c’est un peu la norme).
La méthode d'authentification du module HTTP est située sur Codeplex avec un exemple de code et tout ce qui est indiqué ici: http: //www.codeplex .com / CustomBasicAuth
Autres conseils
ADO.NET Data Services, vous voulez dire?
Vous pouvez créer un QueryInterceptor pour une entité et en limiter l’accès. Par exemple:
[QueryInterceptor("foo_entity")]
public Expression<Func<foo_entity, bool>> FilterMembership()
{
MembershipUser user = Membership.GetUser();
Guid userGuid = (Guid)user.ProviderUserKey;
return c => c.UserId == userGuid;
}