2010-09-12 18 views
9

J'essaie d'utiliser OpenRasta pour un service RESTful simple. Ce service doit être sécurisé avec l'authentification HTTP de base ou (de préférence) Digest.Authentification avec OpenRasta

En regardant autour du filet, il y a des dizaines de pages Web d'écriture merveilleux OpenRasta est et qu'il même prend en charge l'authentification Digest, mais je n'ai pas pu trouver un seul exemple de la façon de permettre à l'un de ceux de mon service .

Mettre une RequiresAuthentication sur ma méthode ou mon gestionnaire ne semble pas faire quoi que ce soit.

Est-ce que quelqu'un a déjà fait cela auparavant? Ou est-ce juste un rêve?

MISE À JOUR: J'ai renoncé à me rendre au travail et je suis allé avec Scott Littlewoods fork of OpenRasta. Il a changé la façon dont l'authentification fonctionne et en utilisant sa mise en œuvre, j'ai réussi à faire à la fois Basic et Digest.

Répondre

1

Regardez les classes dans OpenRasta.Security. Il s'agit d'un IAuthenticationProvider que vous devez implémenter et enregistrer dans le conteneur pour que le condensé soit activé.

Vérifiez le journal de débogage si après cela, cela ne fonctionne toujours pas, et envoyez-en une copie sur les listes de diffusion, les personnes présentes sera en mesure de vous aider.

+0

Mettre la dépendance à IAuthenticationProvider dans le IoC n'a pas aidé et ma question a été assis en groupe OpenRasta google aussi longtemps que celui-ci. Au moins, j'ai eu des commentaires ici! – Khash

+0

Désolé je n'ai pas eu d'ordinateur portable depuis une semaine et je ne surveille pas la liste de diffusion aussi étroitement que je le devrais. L'attribut [RequiresAuthentication] garantit que l'appel ne réussit que pour les utilisateurs authentifiés (qui est l'authentification par défaut .net via IPrincipal). Lorsque vous enregistrez un fournisseur d'authentification, le gestionnaire HTTP Digest démarre, sinon ce n'est pas le cas. – SerialSeb

+0

Comment vous inscrivez-vous au contenant? Ailleurs, vous pointez sur http://trac.caffeine-it.com/openrasta/wiki/Doc/DependencyInjection#Howaboutmyowninterfaces mais cela ne parle pas d'authentification. J'ai implémenté IAuthenticationProvider et j'ai décoré un gestionnaire avec [RequiresAuthentication], ce qui m'incite à m'authentifier, mais cela ne semble pas affecter ma classe d'authentification. – pc1oad1etter

1

Je pense que le problème est avec l'utilisation de Cassini (intégré dans VS.NET) pour déboguer. Cassini ne supporte pas l'authentification comme le fait IIS. Quand je suis passé à IIS, il a commencé à m'inciter à l'authentification.