Tôi đang làm việc với ứng dụng WPF/C# nơi tôi cần khóa người dùng truy cập một tính năng cụ thể trong một khoảng thời gian. Về cơ bản, từ thời điểm một sự kiện nào đó xảy ra, tôi muốn ngăn chặn truy cập nhất định trong 24 giờ tới.Có thời gian tuyệt đối của Windows cho dấu thời gian không? (.NET)
Trường hợp đơn giản:
- tổ chức sự kiện xảy ra, lưu dấu thời gian (sử dụng DateTime hoặc tương tự)
- tài cố gắng truy cập khu vực 15 giờ sau đó, so sánh Bây giờ để đánh dấu thời gian ... khối
- cố gắng tài để truy cập khu vực sau 25 giờ, hãy so sánh Hiện hành với dấu thời gian ... cho phép
Tất cả đều tốt. Tuy nhiên, người dùng có khả năng thay đổi thời gian của hệ thống, điều này khiến tôi phải rên rỉ. Họ có thể chỉ cần thiết lập thời gian hệ thống trước 24 giờ và ứng dụng của tôi sẽ không còn khôn ngoan hơn nữa.
Tôi giả định rằng việc thay đổi thời gian trong Windows sẽ chuyển sang đồng hồ thời gian thực của hệ thống ... vậy có đồng hồ hẹn giờ chạy độc lập với đồng hồ hệ thống không? Một người dùng không thể gây rối?
Bất kỳ thông tin chi tiết nào được đánh giá cao.
nhưng cả hai đều phụ thuộc vào môi trường của người dùng. Điều gì xảy ra khi khởi động lại (đối với Environment.TickCount) hoặc nếu internet được rút phích cắm (dịch vụ web)? –
@Stephen, tôi đặc biệt lưu ý rằng Environment.TickCount đặt lại khi khởi động lại. Đối với nếu dịch vụ không có sẵn - nếu ứng dụng yêu cầu mức độ toàn vẹn đó không được phép hoạt động ngoại tuyến. – Josh
+1 Phần quan trọng của câu trả lời này không chỉ là nguồn thời gian bên ngoài mà còn là lựa chọn thực, nhưng nếu bạn thực sự muốn chắc chắn, bạn cần tự bảo vệ mình trước những người dùng độc hại giả mạo dịch vụ thời gian - vì thế cần có SSL . –