SqlMembershipProvider を使用せずに匿名ユーザーが ASP.NET でフォームを何度も送信できないようにする

StackOverflow https://stackoverflow.com/questions/793175

質問

選択した回答を XML ファイルにダンプする単純なフォームがあります。匿名ユーザーがこのフォームを何度も送信できないようにするにはどうすればよいですか?

完全に防弾のソリューションを探しているわけではありません。また、データベースを使用できないという制限があるため、SqlMembershipProvider も使用できません。

Cookie チェックは機能しますか?これを正しく行うにはどうすればよいでしょうか?

よろしくお願いします。

アップデート: より正確に言うと、フォームを誤って送信してしまうことだけを意味するのではなく、1 週間前にサイトにアクセスしたユーザーが再びこのフォームを送信できないようにすることを意味します。

役に立ちましたか?

解決

要するに、完全に信頼性を高めることはできません。あなたが言うように、何かを防弾にすることを気にしないなら、次のいずれかを行うことができます

a) Cookie をクライアント マシンに永続化し、次回誰かが投稿するときにそれを確認します。明らかに、ユーザーは Cookie を削除できるので、素晴らしいとは言えません。b) 送信元の IP アドレスを保存できます。これの問題は、同じ IP の背後にいる複数のユーザーが送信できないことです。プロキシを使用すると、同じユーザーが異なる場所から投稿できます。

どちらも特に良いことではなく、可能であれば、最初にメールアドレスを入力し、投稿を未確認として保存し、確認リンクをメールで送信し、クリックした場合にのみ投稿を公式にするよう依頼することをお勧めします。繰り返しになりますが、複数の電子メール アカウントで投稿するユーザーを阻止するものではないため、完全に防げるわけではありませんが、上記のオプションよりは少し優れています。

HTH

他のヒント

セッション変数を使用して、ユーザーが何をしているかを追跡します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top