قفل کردن زمان و تاریخ ویندوز

سلام وقت همگی به خیر
دوستان من یه برنامه با زبان سی شارپ و بانک اطلاعاتی اس کیو ال سرور نوشتم که در زمان ورود کاربر(لاگین)، ساعت و تاریخ رو در دیتابیس ثبت می کنه
تا با استفاده از اون، تعداد روزهای کاری و همچنین تاخیرهای پرسنل محاسبه بشه (امکان استفاده از دستگاه ثبت ورود و خروج نیست فعلا)
اما خب مساله اینجاست که پرسنل خیلی راحت میتونن با دستکاری تاریخ و ساعت ویندوز، نرم افزار رو دور بزنن !!!
میخواستم بپرسم چطور می تونم ساعت و تاریخ رو قفل کنم که غیر قابل تغییر بشه (با استفاده از کدنویسی درون خود نرم افزار یا امکانات ویندوز)
خیلی ممنون
 

the_king

مدیرکل انجمن
سلام وقت همگی به خیر
دوستان من یه برنامه با زبان سی شارپ و بانک اطلاعاتی اس کیو ال سرور نوشتم که در زمان ورود کاربر(لاگین)، ساعت و تاریخ رو در دیتابیس ثبت می کنه
تا با استفاده از اون، تعداد روزهای کاری و همچنین تاخیرهای پرسنل محاسبه بشه (امکان استفاده از دستگاه ثبت ورود و خروج نیست فعلا)
اما خب مساله اینجاست که پرسنل خیلی راحت میتونن با دستکاری تاریخ و ساعت ویندوز، نرم افزار رو دور بزنن !!!
میخواستم بپرسم چطور می تونم ساعت و تاریخ رو قفل کنم که غیر قابل تغییر بشه (با استفاده از کدنویسی درون خود نرم افزار یا امکانات ویندوز)
خیلی ممنون
اصولا در نرم افزار های مشابه زمان رو از سیستم سرور دریافت می کنند و کاری با ساعت سیستم کلاینت ندارند. از اونجایی که اصولا پایگاه داده روی سرور قرار دارد لزومی ندارد
که کلاینت تاریخ خودش را به عنوان یک داده به سرور ارسال کند. اما به هر حال اگر کاربر هایتان Administrator نیستند و رمز اش را نمی دانند می توانید محدود شان کنید.

Enable / Disable Change Of Date And Time On Windows XP

Windows 7: Date and Time - Allow or Prevent Users and Groups from Changing
 
اصولا در نرم افزار های مشابه زمان رو از سیستم سرور دریافت می کنند و کاری با ساعت سیستم کلاینت ندارند. از اونجایی که اصولا پایگاه داده روی سرور قرار دارد لزومی ندارد
که کلاینت تاریخ خودش را به عنوان یک داده به سرور ارسال کند. اما به هر حال اگر کاربر هایتان Administrator نیستند و رمز اش را نمی دانند می توانید محدود شان کنید.

Enable / Disable Change Of Date And Time On Windows XP

Windows 7: Date and Time - Allow or Prevent Users and Groups from Changing


خیلی ممنون از پاسختون، مشکلم حل شد اما یه سوال دیگه برام پیش اومد
اینکه میگید زمان رو از سمت سرور بگیرم یعنی باید دیتابیسمو رو یک سیستم دیگه بالا بیارم و اون رو سرور در نظر بگیرم ؟
واسه زمانی که فقط یک سیستم دارم چی ؟ باید از دیتابیس آنلاین استفاده کنم ؟
اگه بخوام از دیتابیس آنلاین استفاده کنم دیگه نمی تونم از SQL SERVER استفاده کنم و باید MySQL استفاده کنم درسته ؟
میشه یه خورده توضیح بدید، من با این مساله آشنایی ندارم
خیلی ممنون
 
آخرین ویرایش:

the_king

مدیرکل انجمن
خیلی ممنون از پاسختون، مشکلم حل شد اما یه سوال دیگه برام پیش اومد
اینکه میگید زمان رو از سمت سرور بگیرم یعنی باید دیتابیسمو رو یک سیستم دیگه بالا بیارم و اون رو سرور در نظر بگیرم ؟
الزاما نه ولی معمولا همینطور است، معمولا پایگاه داده روی سرور قرار داره و زمان مبنا هم همون ساعت سرور ئه، وقتی کاربر x از روی یک سیستم کلاینت که درستی ساعت اش مهم نیست لاگین کرد، به سرور اطلاع داده میشه که
x لاگین کرده، اما دیگه بهش اعلام نمی کته که در ساعت فلان، خود سرور زمانی که این پیغام لاگین رو دریافت کرد ساعت رو با مبنای سیستم خودش در پایگاه داده ثبت می کنه.
که معمولا ارتباط بین کلاینت ها و سرور از طریق شبکه داخلی ئه.
واسه زمانی که فقط یک سیستم دارم چی ؟ باید از دیتابیس آنلاین استفاده کنم ؟
اگه بخوام از دیتابیس آنلاین استفاده کنم دیگه نمی تونم از SQL SERVER استفاده کنم و باید MySQL استفاده کنم درسته ؟
میشه یه خورده توضیح بدید، من با این مساله آشنایی ندارم
خیلی ممنون
نه، بین سیستم هایی که پرسنل باهاش کار می کنند مرسوم ئه که پایگاه داده تحت سرور داشته باشند، با این وجود الزامی نیست. مزیت سرور در اینه که در مکان امن و مطمئن قرار می گیره و هر کسی بهش دسترسی نداره.
اگر سیستم مستقلی تحت عنوان سرور ندارید و پایگاه داده روی همون سیستمی قرار داره که پرسنل باهاش کار می کنند برای صرفا یک ساعت لزومی نداره که کل پایگاه داده رو به خارج از سیستم منتقل کنید.
پایگاه داده روی همون سیستم فعلی و با همون شرایط موجود باقی بمونه، فقط زمان رو از یک منبع دیگر دریافت کنید.
یعنی شما صرفا به یک منبع ای برای دریافت ساعت صحیح نیاز دارید که کاربران نتوانند دستکاری اش کنند، مثلا :
  • اگر به اینترنت دسترسی دائم هست، زمان رو از یک سرور روی اینترنت (با کد نویسی) بخوانید. سایت نشان دهنده زمان که قطعا خیلی زیاد ئه، حتما نمونه های بهتری هست، من timeapi.org رو جهت مثال مطرح می کنم (ایران با ساعت جهانی اختلاف 3.5+ دارد).
  • اگر یک سیستم دیگری دارید که با کارت شبکه به سیستم فعلی متصل است و پرسنل دسترسی بهش ندارند می توانید ساعت آن سیستم را ملاک قرار دهید، نیازی نیست پایگاه داده را به آنجا منتقل کنید.

معمولا روی سرور های خانواده Unix/Linux از MySQL و روی سرور های ویندوز از SQL Server استفاده می کنند.
 
الزاما نه ولی معمولا همینطور است، معمولا پایگاه داده روی سرور قرار داره و زمان مبنا هم همون ساعت سرور ئه، وقتی کاربر x از روی یک سیستم کلاینت که درستی ساعت اش مهم نیست لاگین کرد، به سرور اطلاع داده میشه که
x لاگین کرده، اما دیگه بهش اعلام نمی کته که در ساعت فلان، خود سرور زمانی که این پیغام لاگین رو دریافت کرد ساعت رو با مبنای سیستم خودش در پایگاه داده ثبت می کنه.
که معمولا ارتباط بین کلاینت ها و سرور از طریق شبکه داخلی ئه.

نه، بین سیستم هایی که پرسنل باهاش کار می کنند مرسوم ئه که پایگاه داده تحت سرور داشته باشند، با این وجود الزامی نیست. مزیت سرور در اینه که در مکان امن و مطمئن قرار می گیره و هر کسی بهش دسترسی نداره.
اگر سیستم مستقلی تحت عنوان سرور ندارید و پایگاه داده روی همون سیستمی قرار داره که پرسنل باهاش کار می کنند برای صرفا یک ساعت لزومی نداره که کل پایگاه داده رو به خارج از سیستم منتقل کنید.
پایگاه داده روی همون سیستم فعلی و با همون شرایط موجود باقی بمونه، فقط زمان رو از یک منبع دیگر دریافت کنید.
یعنی شما صرفا به یک منبع ای برای دریافت ساعت صحیح نیاز دارید که کاربران نتوانند دستکاری اش کنند، مثلا :
  • اگر به اینترنت دسترسی دائم هست، زمان رو از یک سرور روی اینترنت (با کد نویسی) بخوانید. سایت نشان دهنده زمان که قطعا خیلی زیاد ئه، حتما نمونه های بهتری هست، من timeapi.org رو جهت مثال مطرح می کنم (ایران با ساعت جهانی اختلاف 3.5+ دارد).
  • اگر یک سیستم دیگری دارید که با کارت شبکه به سیستم فعلی متصل است و پرسنل دسترسی بهش ندارند می توانید ساعت آن سیستم را ملاک قرار دهید، نیازی نیست پایگاه داده را به آنجا منتقل کنید.

معمولا روی سرور های خانواده Unix/Linux از MySQL و روی سرور های ویندوز از SQL Server استفاده می کنند.


پاسختون عالی و کامل بود، ممنون بابت وقتی که گذاشتین
 

جدیدترین ارسال ها

بالا