2010-09-12 17 views
9

Estoy tratando de usar OpenRasta para un servicio RESTful simple. Este servicio debe estar protegido con autenticación http Basic o (preferiblemente) Digest.Autenticación con OpenRasta

Mirando alrededor de la red, hay decenas de páginas que escriben lo maravilloso OpenRasta y que se incluso soporta la autenticación implícita, pero no he podido encontrar un solo ejemplo de cómo habilitar cualquiera de los de mi servicio .

Poner una RequiresAhenthentication en mi método o manejador no parece estar haciendo nada.

¿Alguien ha hecho esto alguna vez? ¿O es solo un dreamware?

ACTUALIZACIÓN: Dejé de ir al trabajo y fui con el tenedor de OpenRasta de Scott Littlewoods. Él ha cambiado la forma en que funciona la autenticación y, utilizando su implementación, logré hacer Basic y Digest.

Respuesta

1

Mira las clases en OpenRasta.Security. Este es un Proveedor de Autenticación que necesita implementar y registrar en el contenedor para que el compendio lo active.

Revise el registro de depuración si después de hacer esto todavía no funciona, y envíe una copia en las listas de correo, la gente allí será capaz de ayudarte

+0

Poner la dependencia a IAuthenticationProvider en el COI no ayudó y mi pregunta ha sido sentados en grupos OpenRasta Google durante el tiempo que éste. Al menos tengo algunos comentarios aquí! – Khash

+0

Lo siento, he estado sin una computadora portátil durante una semana y no estoy monitoreando la lista de correo tan de cerca como debería. El atributo [RequiresAuthentication] asegurará que la llamada solo tenga éxito para los usuarios autenticados (que es la autenticación .net predeterminada a través de IPrincipal). Cuando registra un proveedor de autenticación, el controlador HTTP Digest activará, de lo contrario no lo hará. – SerialSeb

+0

¿Cómo se registra con el contenedor? En otro lugar señala a http://trac.caffeine-it.com/openrasta/wiki/Doc/DependencyInjection#Howaboutmyowninterfaces, pero eso no habla de autenticación. Implementé IAuthenticationProvider, y decoré un controlador con [RequiresAuthentication], por lo que me solicitaron la autenticación, pero parece que no llega a mi clase de autenticación. – pc1oad1etter

1

Creo que el problema es con el uso de Cassini (integrado en VS.NET) para depurar. Cassini no es compatible con la autenticación como lo hace IIS. Cuando cambié al uso de IIS, comenzó a solicitarme la autenticación.

Cuestiones relacionadas