2009-10-02 7 views
0

Est-il possible de créer des attributs de filtre de style MVC (comme Authorize ou HandleError) qui fonctionnent sur les services Web ASMX? En particulier, j'effectue une authentification personnalisée sur un certain nombre de mes méthodes Web et j'aimerais envelopper le code dans un attribut qui déclenche une exception si les vérifications d'authentification échouent.Filtres de style MVC sur les services Web ASMX, est-ce possible?

Rich

Répondre

1

Depuis ASMX sont également serveur par le pipeline ASP.NET, vous pouvez simplement utiliser HttpModules, ce qui vous donne beaucoup de contrôle sur la manière et la sortie.

est ici une référence et un exemple: http://msdn.microsoft.com/en-us/library/aa719858(VS.71).aspx

Si vous voulez faire très « MVC-like » vous écrivez un module personnalisé http vérifier les webservice des attributs tels que [Autorisez], etc. Étant donné qu'ASP.NET MVC est open source, vous pouvez simplement utiliser des parties de celui-ci comme référence pour vérifier les attributs, etc., puis les intégrer dans votre HTTPModule.

HTH Alex

+0

Êtes-vous sûr de cela? À tout le moins, certains événements ne se déclenchent pas pour un service Web. Vous ne pouvez pas utiliser 'HttpModule' pour la gestion des exceptions globales dans un service Web, par exemple. –

0

Vous pouvez imiter certains effets. En rappelant que les services Web ASMX enveloppent simplement toute méthode publique, vous pouvez utiliser des choses comme le PrincipalPermissionAttribute pour sécuriser vos services.

Questions connexes