Pregunta

Es posible usar permisos basados en reclamaciones para asegurar campos EF usando Post Sharp.Tenemos una aplicación multi-inquilinificada que nos mudamos a las reclamaciones y también tenemos problemas de quiénes pueden leer / escribir a qué campos.Vi esto, pero parece basado en roles http://www.postsharp.net/aspects/examples/security.

En lo que puedo ver, sería un caso de reescritura de la parte isacecurable.

Esperábamos poder decorar un campo con un permiso y ignorar silenciosamente cualquier escritura a Si el usuario no tenía permiso.También estábamos esperando que si lo leíjanos, podríamos intercambiar en otra valor, por ejemplo.Lea el salario y vuelva a regresar 0 si no tiene una solicitud de reclamación.

¿Son estos estándares estándar cosas que hacer, nunca he hecho un AOP serio?Así que solo quería una confirmación rápida antes de mencionar esto como una opción.

¿Fue útil?

Solución

Sí, es posible utilizar PostSharp en este caso y debería ser bastante fácil convertir el ejemplo dado de RBAC a reclamaciones basadas.

Una cosa que debe ser considerada es el rendimiento.Cuando se accede a los campos decorados con frecuencia durante el procesamiento de un caso de uso (por ejemplo, se leen dentro de un bucle), se desperdicia mucho tiempo en cheques de seguridad redundantes.La decoración de un método que represente un caso de uso del usuario final sería más apropiado.

tendría miedo de cambiar silenciosamente los valores de los campos cuando el usuario no tiene permiso insuficiente.Podría llevar a algunos resultados muy sorprendentes cuando un algoritmo se alimenta con datos artificiales no esperados.

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