Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
Recupere la zona horaria como variable de javascript a asp.net codebehind

Aunque esta pregunta puede parecer un duplicado de otras preguntas, no lo es.

Tengo una aplicación web básica de asp.net y simplemente quiero recuperar el tiempo del cliente. Aquí están los problemas que encontré:

1- Usando el código C# DateTime.Now . Ahora básicamente da la fecha y hora del lugar del servidor. Así que obviamente no es útil.

2- Luego, traté de obtener la fecha y hora de JavaScript (hora del navegador). Las preguntas anteriores de stackoverflow sugieren que debería usar un HiddenField. Pero es útil siempre que un botón active funciones que asignarían un valor de fecha y hora a un campo oculto. Traté de asignar el valor de fecha y hora al campo oculto con la función window.onload (para que el valor oculto pueda obtener la fecha y hora cuando se carga la página). Ocurrió otro problema: de acuerdo con el ciclo de vida de la página asp.net, el código javascript viene después del evento page_load. Así que otro fracaso.

3- Aquí está la solución definitiva que se me ocurrió:

Primero, escribí una función JS que crea una cookie de compensación cuando se llama:

 function createZoneCookie() { var zone = new Date().getTimezoneOffset() / -60 var date = new Date(); date.setTime(date.getTime() + (30 * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toGMTString(); document.cookie = "clienttzone=" + zone + expires + "; path=/"; }

Luego, utilicé el siguiente código ubicado en el código subyacente (C#):

 protected void Page_Load(object sender, EventArgs e) { if (Request.Cookies["clienttzone"]==null) { ScriptManager.RegisterStartupScript(this,GetType(), "Javascript", "javascript:createZoneCookie(); ", true); } }

Funciona bien, pero!! Como sabe, el usuario puede acceder a mi función js usando el botón inspeccionar (F12) en su navegador. Por lo tanto, pueden alterar mi código y dar una fecha y hora falsa o, lo que es peor, crear sus propias cookies arbitrarias. Y como me dijeron, es imposible hacer que un código JS sea invisible para el usuario.

¿Cómo diablos la gente recupera la zona horaria del usuario sin comprometer el código confidencial?

ADEMÁS , ¿hay alguna forma en que el código del lado del servidor pueda usar una función de retorno del lado del cliente? Déjame aclarar:

 ScriptManager.RegisterStartupScript(this,GetType(), "Javascript", "javascript:createZoneCookie(); ", true);

He usado el código anterior para ejecutar una función desde el lado del servidor, pero como sabe, la función createZoneCookie es una función de tipo vacío.

Mi pregunta es: ¿puedo obtener un valor de una función JS desde el lado C# de mi código?

esta pregunta no funcionó porque la respuesta aceptada no aborda la cuestión del paso de valor del lado del servidor al lado del cliente.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda