Je voudrais ajouter une authentification simple aux services de données, pour l'instant seulement pour restreindre l'accès à des applications particulières par un jeton simple.OData - Authentification simple du service de données
Je n'ai pas besoin d'authentification de domaine ou d'authentification par formulaire.
Je lis beaucoup sur l'authentification ici:
http://franssenden.wordpress.com/2010/06/14/custom-security-odata-service-wcf-data-services/
http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/06/03/10482.aspx
http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/01/15/10119.aspx
http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/01/10/10100.aspx
Malheureusement tout exige une loooot de travail. Surtout en créant un IHttpModule personnalisé. Il devrait y avoir une solution plus simple.
Je sais que lorsque je crée un contexte d'objet sur le client (WPF), je peux ajouter des informations d'identification.
Uri uri = new Uri("http://localhost/myapp/odata.svc");
MyEntities ent= new MyEntities (uri);
ent.Credentials = new NetworkCredential("token", "zx5as9vxc5sa9h0vb6523cv56");
Mais où puis-je les lire (sans implémentation de IHttpModule personnalisé)?
Je pensais que je peux utiliser quelque chose dans la classe qui est la mise en œuvre du service de données par exemple:
protected override void OnStartProcessingRequest(ProcessRequestArgs args)
{
string cred = args.OperationContext.AbsoluteRequestUri.UserInfo;
}
Je ne suis pas au courant de UserInfo mais la description pour elle signifie « Obtient le nom d'utilisateur, mot de passe,. ..)
J'ai donc deux questions principales:
Où puis-je en tapant lettres de créance inclus ent.Credentials = new NetworkCredential ("jeton", « zx5as9vxc 5sa9h0vb6523cv56 ");
Où puis-je (si je le peux) définir UserInfo sur l'application cliente et l'utiliser dans la méthode OnStartProcessingRequest.
Cordialement, Daniel Skowroński
Merci, j'ai utilisé http://blogs.msdn.com/b/astoriateam/archive/2010/07/21/odata-and-authentication-part-6-custom-basic-authentication.aspx pour créer une fonctionnalité d'authentification . Je l'ai fait sans créer de custom HttpModule personnalisé, simplement SSL + client evnt ctx.SendingRequest + = new EventHandler (OnSendingRequest); + côté serveur dans l'événement de service OData protected override void OnStartProcessingRequest (Arguments ProcessRequestArgs) –