2016-05-28 6 views
0

ログインフォームが1つ、メインダッシュボードのフォームが1つ、サブダッシュボードのフォームが7/8、その他のメイン/ダッシュボード以外のフォームが多数あります。無活動のx分後にユーザーのログインを強制する

私は何らかの種類のシステムを実装したいと考えています。ユーザーがx分間分非アクティブになっていると、再びログインするように求められます。

ログインが必要な場合は、60秒ごとに確認するグローバル機能を継続的に実行する方法はありますか。明白な方法は、on timerイベントを使用することです。しかし、非常に多くのフォームで私は各フォームなどに電話を追加する必要があります

簡単な方法はありますか?

+1

はただ一つの形---早く開いているフォームのシーケンスである最初のフォームまたは1でタイマー機能を置きます。ユーザーがそれを完了したときにフォームを非表示にします。そのフォームは開いているが隠れているため、そのタイマーはアクティブのままです。 – HansUp

答えて

0

私はこれを行う簡単な方法はないと思います。

最初に、「ユーザーがx分間無効になった」と定義する必要があります。という意味です。いくつかのオプションがあります。

  1. Accessアプリケーションは、x分間集中窓ませんでした。 (欠点:ユーザがフロントでAccessアプリケーションをアイドリングして、決してフォーカス損失を引き起こさない可能性があります)
  2. 特定のフォームにはフォーカスされていません。 x分間。 (欠点:アプリケーション内のフォームごとにチェックルーチンを実装し、すべてのGotFocusおよび/またはLostFocusイベントを記録して、別のフォームに少なくともx分かかることを確認する必要があります。
  3. (つまり、ボタンのクリックなどでトリガーされたイベント)は、x分間発生しませんでした。 (欠点:処理するイベントごとに、x-minutes-timerをリセットするコードを追加する必要があります。また、naviagtionの新しいイベントハンドラを導入する必要があります(#2、フォーカス損失を参照)。フォームをナビゲートすることでアクティブになっているユーザーをログオフすることができます)。
  4. ...他の方法ではうまくいきません。

新しい問題のホストに対処しなくても、これを行うには良い方法はありません。

ベスト・アイドル時間は、アクティブ・データベース・サーバーであり、別のAccessデータベース(またはフォームが入っているデータベース)でなく、バ​​ックエンド・データベースに設定することです。

専用のデータベースサーバーを持っていない後者のケースでは、最初にログインのタイムアウトが必要な理由を再考する必要があります。または、言い換えると:

アクセス専用データベースでは、どのようなログインが便利ですか?

セキュリティはありますか?ログインしているかどうかにかかわらず、ユーザーがデータベース内のすべてのデータにアクセスするのを防ぐ方法はありません。注意:Accessデータベースは、ファイルシステム上の単なるファイルです。ユーザーを使用すると、データベースは実際にはそのファイル内のすべてのものに既にアクセスしています。 Accessにはユーザーレベルのセキュリティなどはありません(少なくともこれ以上はありませんが、それがベストです)。

データベース全体(ファイル - >情報)を暗号化できますが、ユーザーごとではなくデータベースごとに1つのパスワードしか指定できません。再度:ユーザーレベルのセキュリティはAccessで実行できません。

は、Accessデータベースのセキュリティの詳細についてはこの回答を参照してください:https://stackoverflow.com/a/530778/6216216

関連する問題