Pregunta

Tengo un backend comunidad existente y me gusta usar Umbraco para mi capa de presentación. ¿Cómo puedo aplicar de conexión / desconexión con .Net autenticación de formularios? (No quiero utilizar la funcionalidad miembros). Tengo diferentes tipos de usuarios que llegan de acceso a los diferentes tipos de páginas. ¿Cómo puedo controlar esto? control de usuario?

¿Fue útil?

Solución

Umbraco utiliza el modelo de proveedor / miembro de roles de ASP.NET por su sistema de afiliación, y que es un paso bastante sencillo para cambiar el valor por defecto uno para su propia implementación. He hecho esto en el pasado donde quería autenticar a los miembros en un almacén de Active Directory, pero no puedo imaginar que sea mucho más difícil para la autenticación en una base de datos personalizada.

La ventaja de este es que se consigue la plena integración con el sistema de afiliación Umbraco, y mediante el uso de un proveedor de función personalizada, editores será capaz de restringir las páginas utilizando el construido en las instalaciones de edición de páginas en lugar de tener que conectar en su controles propia seguridad.

Usted debe ser capaz de crear un simple proveedor de pertenencia mediante la extensión de la clase UmbracoMembershipProvider y anulando el ValidateUser método. No he hecho esto por mí mismo, pero sé de otros que tienen.

Para autenticarse en un proveedor de papel personalizado, se tendrá que crear una clase derivada de RoleProvider . Los métodos que se va a estar interesado en anulando son -. IsUserInRole , FindUsersInRole , GetAllRoles y GetRolesForUser

Aquí hay un enlace a un Scott Guthrie entrada de blog que tiene más información sobre la API de proveedor de lo que nunca necesitará saber, incluyendo el código fuente de los proveedores por defecto.

Otros consejos

He utilizado dos enfoques en mis sitios Umbraco. Ambos enfoques incluyen controles de usuario para conectarse y desconectarse que son responsables de la autenticación de un usuario con una solución personalizada y despejar las credenciales respectivamente. También agrego, para ambos enfoques, un atributo umbracoMembersOnly a cualquier tipo de documento que desea proteger.

En el primer enfoque, que tenía cada cheque plantilla individuo para ver si es o no el usuario se restringió el acceso. Para este resumen, he creado una clase siteuser con un IsMember o método IsLoggedIn que estaba disponible en todo el sitio y que podría llamarse a partir de un XSLT o macro de Control de Usuario. La ventaja de este enfoque es que podría adaptar los mensajes personalizados en cada plantilla en lugar de simplemente proporcionar la página negado mismo acceso.

El segundo enfoque - que es el que estoy a favor de ahora - si para crear una macro Los permisos que se encarga de comprobar el derecho del usuario a acceder a cualquier página (es decir, los controles para un atributo umbracoMembersOnly y, si es cierto, los controles de una variable de sesión ). Esta macro se incluye en la plantilla maestra, y así se ejecuta en cada plantilla. Si el usuario no tiene permiso para acceder a la página actual, que redirigir a la misma página, pero con un? Alttemplate = RestrictedPage o similares anexa a la cadena de consulta. (Asegúrese de que sus permisos macro comprueba para un alttemplate = RestrictedPage en la cadena de consulta, o que va a terminar en un bucle infinito de redirecciones.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top