C# を使用してクライアント サーバー アプリケーションを開発しています。基本的にサーバーは SQL サーバーで、クライアントは C# で開発されています。私が知りたいのは、一度にアプリケーションを使用するユーザーの数を制限するための最良の方法 (ある場合) です。たとえば、ユーザーを 2 人に制限したいとします。SQLserver へのアクセスを制限しますか?
3 に答える
同時ユーザー数を識別するために、「セッション」の概念が必要になる可能性があります。
これを確実に行うには、DB サーバーとクライアントの間にアプリケーション層を導入する必要があります。その後、ユーザーにログインおよびログオフするメソッドを提供できます。
ログインするたびに「同時ユーザー」の数を増やす必要があり、ログオフするたびに減らす必要があります。
一部のクライアントは logff メソッドを呼び出さずにシャットダウンする場合があるため、セッション タイムアウトの概念を導入する必要がある場合があります。
許可される同時ユーザー数は、ライセンスに関連付けることができます。
「currentUser」テーブルを使用して、システムに同時にログインしている現在のユーザーを保存します。
ユーザーがログインするとき、行数が最大数であるかどうかを確認します。個の行に達しました。
ユーザーがシステムを離れるときに、それぞれの行を削除します。このようにして、同じユーザー ID を使用して別のコンピューターからログインすることも制限できます。
個々のライセンスを販売するだけです。
信頼できるサーバー (SQL Server など) でライセンスを確認する方法でアプリケーションを作成します。
コンピュータ/ユーザーごとにライセンスを販売します。
このようにして、必要に応じて 2 人以上のユーザーに簡単に拡張できます。
フローティング ライセンスを実装することも可能です。ユーザーがライセンスを取得しようとするたびに、利用可能な場合にのみライセンスが付与されます。もちろん、ライセンスは切断またはタイムアウト後に「解放」する必要があります。このシナリオでは、多数のライセンスを含むサーバーと、ライセンスを配布する信頼できるサービスが必要です。
Winforms アプリケーションでは、起動時にライセンスを確認するだけで、ユーザーが重要なこと (データベースのクエリやメニュー項目のクリックなど) を行うたびにタイムアウトを延長できます。