2010-02-16 10 views
6

He visto varios escenarios similares explicados aquí pero no el particular. Me pregunto si alguien podría decirme en qué dirección entrar.MVC2 Aplicaciones (y otras) compartiendo servicios de WCF y autenticación

Estoy desarrollando dos (y más adelante) aplicaciones MVC2. También habrá otro cliente (más grueso) más adelante (WPF o Silverlight, TBD). Todos estos necesitan compartir la misma autenticación. Para las aplicaciones MVC2, (preferiblemente) deben iniciar sesión por única vez, es decir, si un usuario inicia sesión en una aplicación MVC2, debe estar autorizado por otra, siempre que la cookie no haya excedido el tiempo de espera.

Se utilizará la autenticación de formularios.

Todas las aplicaciones necesitan utilizar la funcionalidad comercial común y realizar acceso a bases de datos a través de una aplicación de servicio WCF común. Sería bueno (creo) si el WCF no es públicamente accesible (es decir, bloqueado detrás de FW). El cliente más grueso podría usar una capa de servicio adicional para acceder a la aplicación común de WCF.

Lo que esto debe ser similar es:

MVCApp1 -> WCFAppCommon

MVCApp2 -> WCFAppCommon

ThickClient -> WCFApp2 -> WCFAppCommon

¿Es posible llevar a cabo todas las autenticación/autorización en WCFAppCommon? De lo contrario, creo que tendré que repetir toda la lógica de seguridad en MVCApps y WCFApp2, mientras que, para mí, parece estar de forma natural en WCFAppCommon. Por otro lado, parece que si autentico/autorizo ​​en WCFAppCommon, no podría usar la Autenticación de formularios.

Donde he visto posibles soluciones (que aún no he probado) parecen mucho más complejas que la autenticación de formularios y una sola base de datos.

Cualquier ayuda apreciada,

Phil

Respuesta

4

Pensé que debería volver a esto con lo que aprendí (y volví a aprender).

Primero, la lección aprendida de nuevo: no se fije en una arquitectura y luego intente hacer que todo lo demás encaje. Estoy arreglado en .Net, SQL Server, WCF, MVC2, EF4 e IIS7. ¡Reparar en mi mente cómo quiero que encajen es algo tonto! Mejor salir y ver qué guía existe.

que me lleva a lo que aprendí - Aquí hay un enlace:

http://wcfsecurityguide.codeplex.com/

descarté este artículo un par de veces porque es un poco anticuado. Sin embargo, diría que en realidad es muy relevante y si está comenzando un proyecto relacionado remotamente con la seguridad de los servicios, eche un vistazo. La Parte IV tenía todo lo que necesitaba.

1

Estamos utilizando aplicación Web WCF alojamiento sistema de presentación de memorias (estamos accediendo desde Silverlight) y ya que está usando las mismas teclas de la máquina como nuestra aplicación MVC - podemos compartir galletas autenticación también.

De lo contrario, debe enviar un ticket de autenticación (personalizado o no) a su aplicación WCF.

Cuestiones relacionadas