En mi aplicación web necesito restringir el número máximo de usuarios que acceden a mi aplicación web. El número de usuarios se configura en un archivo de propiedades separado. He creado una interfaz HttpSessionListener para rastrear diferentes pero el problema que enfrentan es que un usuario puede solicitar el uso de varias instancias del navegador y la cantidad de usuarios se incrementa en 1 aunque el mismo usuario con una instancia diferente del navegador. Necesito contar los usuarios basados en una dirección IP diferente o alguna otra parámetro únicoNúmero máximo de usuarios para una aplicación web
Respuesta
Una posibilidad podría ser utilizar cookies de sesión: si el nuevo usuario conectado no tiene una cookie de sesión, proporcióneles una e incremente su contador; de lo contrario, no incremente el contador.
¿Qué ocurre si las cookies están bloqueadas en el navegador del cliente? – Lalchand
@Lalchand Eso le impediría diferenciar entre dos usuarios separados y un usuario en dos navegadores, pero debería poder asignar una variable de sesión si no puede usar una cookie, y eso debería tener el comportamiento deseado si un usuario abre el sitio web dos veces en el mismo navegador. –
Supongo que en la intranet de una oficina puede hacer que todos los navegadores acepten las cookies de su aplicación. – ZoolWay
Oculte su aplicación web detrás de un formulario de inicio de sesión de usuario y restrinja en función de la cantidad de usuarios que inician sesión.
Y quizás agregue un tiempo de espera relativamente corto, como 5 minutos. Por lo tanto, las conexiones inactivas no acaparan la aplicación. –
No se puede saber si el mismo usuario está usando instancias de usuarios diferentes y si no puede saber si un usuario está usando dos computadoras diferentes, etc.
Puede restringir el número máximo permitido de sesiones abiertas por usuario, pero tenga en cuenta que una cookie es solo un número de serie que podría ser inyectado en otra instancia de un navegador como encabezado. Si el usuario está detrás de la misma subred, ni siquiera podría distinguir ese caso con su dirección IP.
Quiero decir, lo que llegue al ámbito del lado del cliente, de ninguna manera está bajo su control. Por lo tanto, estoy bastante seguro de que, aunque podrías agregar algunos obstáculos, nunca serás capaz de controlar eso.
De todos modos, aquí hay algunos obstáculos:
- Restringir entrada a una sola.
- Cookies de sesión, cookies de dominio, cuadro de texto de entrada oculto.
- Un applet Java que hace algo raro (como obtener la dirección IP local detrás de una subred u otra información, si está permitido).
- Un programa flash que hace algo raro.
- Seguimiento de la dirección IP remota.
- Una combinación de los anteriores.
Esto es un problema real no solo para usted.
Por ejemplo, "Quality Center" de HP funciona así: cuentan el número de inicios de sesión activos actuales. Si se alcanza el límite de inicios de sesión simultáneos, no puede iniciar sesión con un nuevo inicio de sesión.
Eso funciona bastante bien.
Pero, si usa un inicio de sesión que ya está conectado, puede usar la aplicación. Entonces, dos usuarios que usan el mismo nombre de usuario pueden trabajar al mismo tiempo.
Sigue siendo una buena solución, una idea y no demasiado complicada de desarrollar.
Esto tiene que ser el problema más loca que he encontrado, y la guinda del pastel es
He creado una interfaz HttpSessionListener para rastrear diferentes usuarios, pero el problema es que estoy frente a un usuario puede solicitar el uso de varias instancias del navegador y la cantidad de usuarios aumenta en 1 aunque el mismo usuario con una instancia de navegador diferente
En serio ?? ¿Quién llegó a los requisitos? El problema que necesitas resolver es el requisito loco, y en serio, no implementes locuras solo porque un BA se confundió y no hizo su trabajo.
- 1. Número de hilo máximo para una aplicación?
- 2. Aplicación web Java para 5000 ~ usuarios
- 3. número máximo de usuarios del servidor web que apache puede manejar?
- 4. ¿Número máximo de subprocesos en una aplicación .NET?
- 5. Limitar el número de usuarios que acceden a una aplicación web ASP .NET
- 6. Número máximo de UILocalNotification para iphone
- 7. ¿Qué aplicación web recomendaría para los comentarios de los usuarios?
- 8. La mejor manera de autenticar usuarios en una aplicación web
- 9. Número máximo de cookies permitidas
- 10. ¿Cuál es el método más preciso para estimar el requisito de ancho de banda máximo para una aplicación web?
- 11. Número máximo de divs permitidos en la página web
- 12. Número máximo de Err.Raise?
- 13. Número máximo de Ruby
- 14. Número máximo de HttpWebRequests concurrentes
- 15. iphone y notificaciones: ¿número máximo de notificaciones?
- 16. Práctica recomendada para usuarios/roles en SQL Server para una aplicación web
- 17. Autenticación para usuarios en una aplicación de una sola página?
- 18. Parámetros de función número máximo
- 19. Número máximo de instrucciones GLSL
- 20. Transmitir y proteger correctamente las contraseñas de los usuarios para una aplicación web
- 21. SQL Server: número máximo de registros para devolver
- 22. ¿Cuál es la altura y el ancho máximo práctico para una aplicación web?
- 23. Número máximo de partes web/zonas de elementos web por página? (Microsoft SharePoint 2007)
- 24. ¿Cómo implementar y asegurar que una aplicación web ASP.NET esté disponible para usuarios internos y externos?
- 25. Autorización de una computadora para acceder a una aplicación web
- 26. Número de instancias necesarias para la aplicación azul de Windows
- 27. Número máximo de aplicaciones cargadas en un proceso
- 28. ¿Número máximo de filas en una tabla sqlite?
- 29. Prueba de integración para una aplicación web
- 30. Cambiar el límite del número máximo de subprocesos por una aplicación
¿Y qué pasa con los usuarios que están detrás de la misma IP pública? – Joe
La aplicación utilizada en intranet.its utilizada en la oficina – Lalchand
Si los inicios de sesión no son una opción, yo diría que agregue un requisito para las cookies, los usuarios sin cookies habilitados son rechazados de inmediato. Use sesiones, luego puede administrar el recuento a través de un contador de nivel de aplicación y un nuevo usuario tendría una sesión en blanco var, si es límite, rechace la solicitud del usuario; de lo contrario, continúe y establezca la sesión var y +1 en el contador. También maneja el tiempo de espera de la sesión para los rodillos, por lo que el contador baja correctamente. Los cambios en el contador también deberían ser seguros para la condición de carrera, de todos modos ¡buena suerte! –