現在、ライセンスの有効期限が切れると使用できなくなるように、アプリケーションを保護しようとしています。ライセンスの有効性を判断するために使用するデータベースに登録キーが保存されています。
私の最初のアイデアは、global.asax ファイルで Session_Start を使用してライセンスの詳細を参照し、必要に応じて「ライセンスの更新ページ」へのリダイレクトを発行することでした。リダイレクトに続いて、コントローラー アクションで Session.Abandon() を呼び出していたので、それ以降のページ要求は同じプロセスを繰り返します。
このアプローチの問題は、ユーザーがページを更新すると、リダイレクト ループが発生するように見えることです。これにより、Session_Start は最良のアイデアではないと思いますが、BeginRequest などにコードを配置することは避けようとしていました。また、ライセンスを更新する有効な試行中にバイパスするのも面倒です。
私は現在、エラー ページがロードされたときに AJAX 呼び出しを行い、サーバー側で Session.Abandon をトリガーするというアイデアを修正しましたが、これはまだ間違っていると感じており、誰かがそのしくみを認識した場合、悪用される可能性があります。
アプリケーション全体が Windows 認証を使用して保護されているため、フォーム認証で行っていたログイン試行中にライセンスを評価するオプションがありません。
代替アプローチの提案はありますか?