asp.net - crear - ¿Cómo detectar eventos cuando el usuario va de una colección de sitios a otra en la misma aplicación web?
crear evento click c# (1)
1 forma es usando un control oculto y una cookie.
Mantenga un control oculto en todas las páginas maestras de todas las colecciones de sitios específicas. Este control verificará la URL actual de la colección de sitios y la guardará en una cookie. Posiblemente en la misma cookie donde está almacenando lcid.
A partir de la siguiente carga, intentará hacer coincidir la URL en la cookie y la URL actual de la colección de sitios. Si es diferente, llama al código que deseas ejecutar y actualiza la url en la cookie.
Esto será mucho más ligero en rendimiento que un httpmodule.
Tengo varias colecciones de sitios en la misma aplicación web y necesito manejar eventos cuando el usuario va de una colección de sitios a otra. Lo necesito para acciones específicas, como configurar la cookie "lcid" para cambiar el idioma predeterminado del sitio y reclamar valores para la asignación de propiedades del usuario.
Actualmente estoy usando un módulo HTTP personalizado, que maneja todas las solicitudes postAuthorize de aplicaciones web y comprueba la colección actual de usuarios y sitios, guarda el último sitio visitado para cada usuario en la colección y dispara un evento personalizado para suscriptores cuando detecta la transición entre colecciones de sitios.
Pero creo que este enfoque ralentiza el rendimiento de la aplicación web. Y de los registros veo que hay muchas solicitudes de Post Autorización incluso cuando el usuario simplemente hace clic en un enlace a la página en otra colección de sitios. Además, en casos similares a veces hay una serie de solicitudes para la "próxima" colección de sitios, luego a "anterior", y luego nuevamente a "siguiente". También hay algunos problemas con SharePoint Designer (no se puede editar la página) cuando el módulo está activo.
¿Podría darme un consejo con mejores enfoques para esta tarea? Gracias por adelantado.