あなたが達成しようとしていることを正確に教えてください。
- ユーザーが登録されているか知りたいのですが?
- 同じユーザーが複数のファイルをダウンロードしますか?
- ファイルの種類は?
あなたが私たちに言うことができる他のシナリオはありますか?
シナリオに応じて、多くの点で問題が発生する可能性があります。
この例を探して、詳細をお送りします
http://support.microsoft.com/kb/306654
シナリオに適合する場合の1つの方法
GUID を使用してデータベース内のユーザーに関連付けることもできますが、その GUID がアプリケーションによってどのように除外されるかについて、いくつかのビジネス ロジックを作成する必要があります。たとえば、UserA には GUID があり、その GUID が次の 15 分間に使用された場合、UserA は自動的にログインできますが、15 分後にはユーザーにユーザー名とパスワードを使用するように強制します。
同様に、u=UserA&time=1347&date=01282001 のようなクエリ文字列を作成し、何らかのハッシュで実行することができます。戻ってきたら、ハッシュを解除し(MD5を使用できないように)、タイムスタンプを確認し、そのタイムスタンプが作成されてからの経過時間を確認します。許容可能な時間枠内であれば、ユーザーに入力させます。そうでない場合は、ユーザー名とパスワードの使用を強制します。これにより、データベース内のユーザーと何かを関連付ける必要がないため、GUID に比べてより単純なソリューションになる可能性があります。
更新:もし私がそれをしなければならなかった場合、私は次のアプローチを取ります。これらのファイルをダウンロードから保護する方法は、あなた次第です。
ステップ 1: 新しいテーブルを作成し、ユーザーが支払いを行って GUID を生成し、このテーブルに GUID とユーザー ID、BookID 情報を保存します。これで、この情報に基づいてリンクを生成できます
http://www.xyz.com/download.aspx?BookID=XX&UserID=XXX&GUID=guid-guid-guid-guid-guid-guid
ステップ 2: HTTPHandler を作成して、上記で作成したテーブルにそのようなレコードが存在するかどうかを確認します。存在する場合は、ユーザーがブックをダウンロードできるようにします。そうでない場合、ユーザーはブックをダウンロードできません。
ユーザーが直接アクセスできないフォルダの下に、ダウンロード可能なすべてのファイルを保存できます。
私が言おうとしていることを理解していただければ幸いです。
これが私が行う方法です。すべてのファイルを保護されたフォルダーに保持するか、データベースに保存できます。
これが出発点になることを願っています。