Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    N'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

Securiser un WebService Ajax

Lorsque l'on conçoit une application Web avec ASP.net, il nous arrive de plus en plus souvent de construire un WebService pour les besoins internes du site. Par exemple le contrôle AutoComplete des Ajax Toolkits nécessite la création d'un WebService qui prend en paramètre un début de mot et retourne une liste de suggestion. Cela pose quelques problèmes de sécurité car tout le monde peut facilement utiliser ce WebService. Il est donc nécessaire de le sécuriser un minimum.

Lorsque vous consommez un WebService en JavaScript avec Microsoft ASP.net Ajax Extensions, vous ajoutez une référence au niveau du ScriptManager ce qui entraine le rajout d'une référence vers un fichier JavaScript spécial : un proxy JavaScript. Ce proxy se trouve à l'adresse monWebService.asmx/js ou monWebService.asmx/jsdebug. 

L'idée est de créer un HttpModule qui va autoriser ou bloquer l'appel vers le WebService. Vous pouvez le retrouver sur ASPFr.com ici : Module d'authentification pour les WebServices Ajax

Le principe est simple, tout d'abord je regarde si la requête porte sur un WebService en vérifiant l'extension de la ressource demandé (.asmx), puis je récupère le Type de la ressource grâce à la méthode BuildManager.GetCompiledType, je vérifie ensuite que le WebService est bien marqué de l'interface IWebServiceRequireAuthentication (de ma création). Je regarde ensuite si on demande le proxy JavaScript si c'est le cas je le conserve dans une variable Session, sinon je regarde l'état de la variable Session et lance une Exception si l'utilisateur n'a pas le droit d'exécuter cette WebMethod.

Pour l'utiliser il ne faudra pas oublier de rajouter l'HttpModule dans votre Web.Config, d'implémenter l'interface IWebServiceRequireAuthentication et enfin d'activer les Sessions au niveau de la WebMethod.

[WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ScriptService] public class WebService : System.Web.Services.WebService, IWebServiceRequireAuthentication { [WebMethod(EnableSession=true)] public string HelloWorld() { return "Hello World"; } }

La source complete est disponible ici : Module d'authentification pour les WebServices AJAX

Posted: dimanche 11 mars 2007 01:49 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Gribouillon a dit :

Vivement l'Ajax officiel sous SharePoint !

Je saurais ou trouver les infos lorsque je m'y mettrais. Merci ;-)

# mars 12, 2007 00:26
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01