Estoy trabajando con una aplicación WPF/C# donde tengo que bloquear a los usuarios el acceso a una función en particular durante cierto tiempo. Básicamente, desde el momento en que ocurre un determinado evento, quiero evitar cierto acceso durante las próximas 24 horas.¿Hay un tiempo absoluto de Windows para las marcas de tiempo? (.NET)
El caso simple: sucede
- acontecimiento, ahorre marca de tiempo (usando DateTime o similar)
- usuario intenta acceder a la zona de 15 horas más tarde, comparar ahora a marca de tiempo ... bloque
- intentos de los usuarios para acceder al área 25 horas después, comparar ahora con la marca de tiempo ... permitir
Todo bien. Sin embargo, el usuario tiene la capacidad de cambiar la hora del sistema, lo que me encanta. Simplemente pueden configurar el sistema con 24 horas de anticipación y mi aplicación no será más inteligente.
Supongo que cambiando el tiempo en Windows se abre paso al reloj de tiempo real del sistema ... ¿hay algún temporizador de ejecución libre que sea independiente del reloj del sistema? ¿Uno con el que el usuario no puede meterse?
Cualquier idea es apreciada.
pero ambos de ellos son depende del entorno del usuario. ¿Qué sucede al reiniciar (para Environment.TickCount) o si se desenchufa internet (servicio web)? –
@Stephen, específicamente noté que Environment.TickCount se reinicia al reiniciar. En cuanto a si el servicio no está disponible, si la aplicación requiere ese nivel de integridad, no se debe permitir que funcione fuera de línea. – Josh
+1 La parte importante de esta respuesta es que no solo es una fuente de tiempo externa la única opción real, pero si realmente quieres estar seguro, necesitas protegerte contra usuarios malintencionados que falsifican el servicio horario, de ahí la necesidad de SSL . –