En mi proyecto actual, algunos de los usuarios a viajar alrededor del mundo y cuando llegan a diferentes destinos, usar cualquier máquina es útil en el momento. Esas máquinas huésped va a correr Windows e instalación y configuran para el escenario local. (Sólo me he dado cuenta de que las máquinas de huéspedes no tengan los paquetes de idioma de derecha… Probablemente no, En realidad… Aquél por ahora estacionando).
SharePoint tiene que proporcionar un mecanismo por el que el usuario puede seleccionar su idioma preferido y luego tener musgo honrar ese idioma independientemente de cómo el usuario accede a MOSS. En otras palabras, ignorar lo que diga el navegador IIS/musgo y en su lugar ver ese idioma y utilizarlo.
Vamos a investigar dos enfoques:
- Controlador HTTP: Un controlador HTTP personalizado instalado en IIS se verá en el perfil del usuario MOSS, descifrar el lenguaje preferido y luego cambiar el encabezado HTTP alrededor según sea necesario antes de pasar el control de musgo.
- global.asax: Modificar el global.asax para hacer lo mismo. Nosotros podemos modificar algo más, pero la idea es que encontremos un lugar donde podemos insertar nuestra lógica de conmutación de configuración regional.
El otro factor que complica es que necesitamos apoyo k 60 usuarios, acerca de 1,000 de que puede ser al mismo tiempo acceder a MOSS en pico de carga.
Parece muy drástico el controlador HTTP, pero posiblemente el mejor lugar para poner el codigo ya que es a nivel de IIS y omnisciente. Es un buen punto de individual de trabajo.
Nos estamos inclinando hacia un enfoque de tipo global.asax, principalmente porque creemos que tendremos más opciones para almacenar en caché datos en ese momento.
Voy a ser más sobre este tema de blogging como aprendo más.
Si tienes sabe algo de esto, please post a comment 🙂
</final>
Sígueme en Twitter en http://www.twitter.com/pagalvin
No he probado esto así que no estoy seguro de que si funciona.
La clase de página tiene una InitializeCulture() método que puede invalidarse. Si haces esto en el código detrás de tu masterpage personalizada, Podrías hacer algo a lo largo de las líneas de:
anulación protegida anular InitializeCulture()
{
// Reemplace el método virtual InitializeCulture() para comprobar si el perfil contiene una configuración de idioma del usuario
string UserCulture = GetCultureFromUserProfile();
Si ( UserCulture != "")
{
// Hay una configuración de idioma del usuario en el perfil: cambiar a ella
Thread.CurrentThread.CurrentUICulture = new CultureInfo(UserCulture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);
}
}
Obviamente usted puede construir una memoria caché en la aplicación de este método.
Fuente: http://quickstarts.asp.net/QuickStartv20/util/srcview.aspx?path=~/ASPNET/samples/Localization/LocalizePers.src&archivo = LocalizePers_cs\LocalizePers_cs.aspx&Lang = C % 23 fuente
Estoy pensando en controlador HTTP con el siguiente flujo:
1. Solicitud viene en, Compruebe las cookies de una cookie de sesión para el idioma de preferencia (las cookies de sesión caducan cuando se cierra el navegador)
2. Compruebe si la petición es para la página ASPX, Si no, saltar solicitud
3. Si existe la cookie, establecer el encabezado de la lengua en el valor especificado. Ya!
4. Ninguna cookie, tomar la credencial de autenticación y buscar el usuario en SPS, encontrar la preferencia de idioma
5. Conjunto encabezado cookie y encabezado HTTP idioma. Hecho.
Primera solicitud de página APX tendrá gastos de búsqueda de SPS pero cada solicitud luego de no tener búsquedas así será velocidad nativa. Sin necesidad de caché de la sesión o cualquier otros gastos mediante el uso de una cookie de sesión también. Una vez que se cierra el navegador, desaparece la cookie de sesión. Si el usuario cambia su preferencia de idiomas en SPS sólo necesitan cerrar y volver a abrir el navegador para que surta efecto.
en realidad el controlador http no es a nivel de iis…es en el nivel de aplicación (Filtros ISAPI son a nivel IIS)…Yo tendría cuidado que BC SP tiene su propio controlador…Así que asegúrate de probarlo…Has hecho antes, pero han tenido algún conflicto con el controlador de SP.
Estaría más inclinado a usar un HTTPHandler, la única razón es que no me gusta tocar los archivos de SharePoint. Además es fácil de crear una solución SharePoint para implementar un HttHandler ( y utilizar la API SPWebConfig para modificar el web.config). Tener la carga de usuarios que hacer, Me imagino que tienes una granja grande, Realmente no quieres ir modificando los archivos en cada servidor.
Implementar el archivo global.asa mediante una solución es una mala idea, Si usted retracta lo, el archivo original se ha ido …
También tiene la capacidad de retirar rápidamente la solución podría ser una buena idea, en caso de que las cosas van mal con el rendimiento del controlador.