7

C# を使用してクライアント サーバー アプリケーションを開発しています。基本的にサーバーは SQL サーバーで、クライアントは C# で開発されています。私が知りたいのは、一度にアプリケーションを使用するユーザーの数を制限するための最良の方法 (ある場合) です。たとえば、ユーザーを 2 人に制限したいとします。SQLserver へのアクセスを制限しますか?

4

3 に答える 3

2

同時ユーザー数を識別するために、「セッション」の概念が必要になる可能性があります。

これを確実に行うには、DB サーバーとクライアントの間にアプリケーション層を導入する必要があります。その後、ユーザーにログインおよびログオフするメソッドを提供できます。

ログインするたびに「同時ユーザー」の数を増やす必要があり、ログオフするたびに減らす必要があります。

一部のクライアントは logff メソッドを呼び出さずにシャットダウンする場合があるため、セッション タイムアウトの概念を導入する必要がある場合があります。

許可される同時ユーザー数は、ライセンスに関連付けることができます。

于 2012-12-21T12:59:35.030 に答える
1

「currentUser」テーブルを使用して、システムに同時にログインしている現在のユーザーを保存します。

ユーザーがログインするとき、行数が最大数であるかどうかを確認します。個の行に達しました。

ユーザーがシステムを離れるときに、それぞれの行を削除します。このようにして、同じユーザー ID を使用して別のコンピューターからログインすることも制限できます。

于 2013-02-21T18:56:58.977 に答える
0

個々のライセンスを販売するだけです。

信頼できるサーバー (SQL Server など) でライセンスを確認する方法でアプリケーションを作成します。

コンピュータ/ユーザーごとにライセンスを販売します。

このようにして、必要に応じて 2 人以上のユーザーに簡単に拡張できます。

フローティング ライセンスを実装することも可能です。ユーザーがライセンスを取得しようとするたびに、利用可能な場合にのみライセンスが付与されます。もちろん、ライセンスは切断またはタイムアウト後に「解放」する必要があります。このシナリオでは、多数のライセンスを含むサーバーと、ライセンスを配布する信頼できるサービスが必要です。

Winforms アプリケーションでは、起動時にライセンスを確認するだけで、ユーザーが重要なこと (データベースのクエリやメニュー項目のクリックなど) を行うたびにタイムアウトを延長できます。

于 2012-12-21T12:59:03.873 に答える