2012-12-21 35 views
7

Tôi đang phát triển ứng dụng Client-Server bằng C#. Về cơ bản, máy chủ là một máy chủ SQL và các máy khách được phát triển trong C#. Những gì tôi muốn biết là cách tốt nhất (nếu có) để hạn chế số lượng người dùng sử dụng ứng dụng cùng một lúc - giả sử tôi muốn giới hạn hai người dùng. Tôi có giới hạn quyền truy cập của họ vào SQLserver không?Giới hạn số người dùng trong ứng dụng C#

+4

Bạn có thực hiện việc này cho các vấn đề cấp phép không? Và, bạn không có bất kỳ máy chủ ứng dụng khác ở giữa? – ryadavilli

+0

Vâng, tôi đang làm điều này để cấp phép cũng như tôi muốn cấp quyền truy cập ứng dụng của mình cho các khách hàng bị giới hạn. Tôi không có bất kỳ máy chủ ứng dụng nào khác ở giữa. Cơ sở dữ liệu Sql Server của tôi nằm trên một máy (gọi là máy chủ cơ sở dữ liệu) và mã ứng dụng của tôi là trên máy khách. Tôi không biết làm thế nào để cung cấp quyền truy cập cho các khách hàng bị giới hạn. Xin lỗi vì tiếng Anh của tôi. Cảm ơn bạn đã trả lời – Vinit

+0

"muốn cấp quyền truy cập ứng dụng của tôi cho các khách hàng bị giới hạn" Bạn có thể giải thích điều này trong câu hỏi của mình hơn nữa không. Điều này vượt quá cấp phép, điều này sẽ dễ quản lý hơn với một số lượng đơn giản. – ryadavilli

Trả lời

2

Bạn sẽ có khả năng cần khái niệm "phiên" để xác định số lượng người dùng đồng thời.

Nếu muốn điều này được thực hiện theo cách không an toàn, bạn sẽ phải giới thiệu một lớp ứng dụng giữa máy chủ DB của bạn và máy khách. Sau đó, bạn có thể cung cấp các phương thức để đăng nhập và đăng xuất cho người dùng.

Tại mỗi lần đăng nhập, bạn sẽ cần tăng số lượng "người dùng đồng thời" và tại mỗi lần đăng xuất, bạn sẽ cần phải giảm.

Bạn có thể cần phải giới thiệu khái niệm về thời gian chờ phiên vì một số khách hàng có thể tắt máy mà không cần gọi phương thức logff.

Số lượng người dùng đồng thời được phép có thể được liên kết với giấy phép.

+0

Lưu ý rằng với kiểu đếm này, bạn chỉ nên tạo một kết nối từ mỗi máy khách. Điều này có thể dễ dàng làm cho việc xây dựng ứng dụng khá khó khăn. –

0

Bạn chỉ cần bán giấy phép cá nhân.

Tạo ứng dụng theo cách nó kiểm tra giấy phép của nó trên máy chủ đáng tin cậy (có thể là Máy chủ SQL).

Bán giấy phép cho mỗi máy tính/người dùng.

Bằng cách này, bạn có thể dễ dàng mở rộng đến hơn 2 người dùng nếu cần.

Cũng có thể triển khai giấy phép nổi: mỗi lần người dùng cố gắng lấy giấy phép chỉ được cấp khi có sẵn. Tất nhiên giấy phép sẽ phải được 'giải phóng' sau khi ngắt kết nối hoặc hết giờ. Trong trường hợp này, bạn cần một máy chủ có chứa một số giấy phép và một dịch vụ tin cậy đưa chúng ra.

Trong ứng dụng Winforms bạn chỉ đơn giản là sẽ kiểm tra cấp giấy phép khi khởi động và bạn có thể kéo dài thời gian chờ mọi người sử dụng không một cái gì đó có ý nghĩa (ví dụ như truy vấn cơ sở dữ liệu hoặc nhấp chuột vào một mục trình đơn)

1

Sử dụng bảng "currentUser" để lưu trữ người dùng hiện tại đăng nhập vào hệ thống đồng thời.

Khi người dùng đăng nhập, hãy kiểm tra số hàng nếu số lượng tối đa. hàng đã đạt đến.

Xóa hàng tương ứng khi người dùng rời khỏi hệ thống. Theo cách đó, bạn cũng có thể hạn chế sử dụng cùng một ID người dùng để đăng nhập từ các máy tính khác nhau.

Các vấn đề liên quan