だから私はこのウェブアプリを持っており、理論的にはいつの日か有料のアプリケーションになるかもしれません - 誰かが実際にそれが有用で価値があると思った場合.
支払いを処理したり、アカウントが期限切れになっていないかどうかを確認したりするためのすべてのロジックがあります。それはすべて RavenDB (実際には RavenHQ) に保存されますが、これは当面の質問には関係ありません。
現在、私はベスト プラクティスに従おうとしています。つまり、マイクロ最適化ではなく、アプリケーションのパフォーマンスを向上させたいのですが、負荷に応じて比較的適切にスケーリングする方法で処理を実行したいと考えています (開始された場合は、ホストされます)。 - 厳密に必要以上のサーバーに料金を支払う必要がないようにしたい)。
私のアプリは、デフォルトのログイン/アカウント モデルに近いものを使用しています。ユーザーは、https 経由のフォーム認証を使用して安全にログインします。
ユーザーが実際に Web アプリケーションの使用を許可されていること (支払い状況などに関して - ドメイン モデルの問題) をどの時点で確認する必要がありますか? これは、RavenDB バックエンドから単一のドキュメントを要求し、現在の支払い期間が期限切れになっているかどうかを確認することを意味すると考えてください。
するべきか:
ユーザーがログインするたびに確認し、x 時間 (x は比較的小さい数字) を超えて "Remember me" できないようにします。
ユーザーが比較的頻繁にアクセスするいくつかの中央コントローラー アクションをチェックインします。これらのアクションが利用できない場合、アプリケーションは本質的に厳しく制限されます。
すべてのリクエストをチェックするグローバル アクション フィルタを実行し、「Pay nooooow!」にリダイレクトします。有効期限が切れるとすぐにページ?
別のオプション?
RavenDB は巧妙なキャッシングを行うため、このドキュメントの要求がパフォーマンスを低下させるとは思いませんが、アプリケーションが実際に離陸した場合 (可能性は低いですが、夢見ることはできます)、http 要求ごとに追加のデータベース要求が発生すると、Ayende が私を追跡する可能性があります。ダウンし、容赦なく私を打ちます。私はそれをしたくありません。
これは他の人が考えて解決したであろうことのように私には思えるので、私は尋ねています - これを処理する正しい方法は何でしょうか?
洞察をありがとう!