2010-09-12 16 views
9

Sto cercando di utilizzare OpenRasta per un semplice servizio RESTful. Questo servizio deve essere protetto con l'autenticazione HTTP di base o (preferibilmente) Digest.Autenticazione con OpenRasta

Guardando giro per la rete, ci sono decine di pagine web che scrivono come meraviglioso OpenRasta è e che anche supporta l'autenticazione Digest, ma non sono stati in grado di trovare un solo esempio di come attivare uno di questi per il mio servizio .

Mettere a RequiresAuthentication sul mio metodo o gestore sembra non fare nulla.

Qualcuno lo ha mai fatto prima? O è solo un sogno?

UPDATE: Ho rinunciato al lavoro e sono andato con la forcella Scott Littlewoods di OpenRasta. Ha cambiato il modo in cui l'autenticazione funziona e utilizzando la sua implementazione, sono riuscito a fare sia Basic che Digest.

risposta

1

Guarda le classi in OpenRasta.Security. C'è un IAuthenticationProvider che devi implementare e registrare nel contenitore per digerire.

Controllare il registro di debug se dopo aver fatto ciò non funziona ancora e inviarne una copia nelle mailing list, le persone lì sarà in grado di aiutarti.

+0

Mettere dipendenza IAuthenticationProvider nel CIO non ha aiutato e la mia domanda è stato seduto in gruppi OpenRasta google per tutto il tempo come questo. Almeno ho avuto qualche feedback qui! – Khash

+0

Scusa se sono rimasto senza laptop per una settimana e non sto monitorando la mailing list il più fedelmente possibile. L'attributo [RequiresAuthentication] garantisce che la chiamata abbia esito positivo solo per gli utenti autenticati (che è l'autenticazione di default .net tramite IPrincipal). Quando registri un provider di autenticazione, il gestore del digest HTTP si avvierà, altrimenti non lo farà. – SerialSeb

+0

Come ti registri al container? Altrove punti su http://trac.caffeine-it.com/openrasta/wiki/Doc/DependencyInjection#Howaboutmyowninterfaces ma non parla di autenticazione. Ho implementato IAuthenticationProvider e ho decorato un gestore con [RequiresAuthentication], quindi mi viene richiesto l'autenticazione, ma non sembra aver colpito la mia classe di autenticazione. – pc1oad1etter

1

Penso che il problema sia con l'uso di Cassini (integrato in VS.NET) per eseguire il debug. Cassini non supporta l'autenticazione come fa IIS. Quando sono passato a utilizzare IIS, ho iniziato a richiedere l'autenticazione.