防止匿名用户在没有SqlMembershipProvider的ASP.NET中多次提交表单

时间:2009-04-27 11:53:20

标签: c# .net asp.net webforms anonymous-access

我有一个简单的表单,可以将选定的答案转储到XML文件中。如何防止匿名用户多次提交此表单?

我不是在寻找完全无懈可击的解决方案,而且我有一个限制,我无法使用数据库,因此没有SqlMembershipProvider。

某些Cookie检查是否有效?怎么做对了?

提前谢谢。

更新:更确切地说,我不仅仅意味着一些意外提交表单,而且是为了防止一周前访问该网站的用户再次提交此表单。

2 个答案:

答案 0 :(得分:1)

简而言之,你不可能完全可靠。如果你没有像你说的那样打扰防弹的话,那么

a)将cookie保存到客户端计算机并在下次有人发布时检查它。显然,用户可以删除cookie,所以不是很棒。 b)您可以存储其提交地址的IP地址。问题在于,您将阻止同一IP提交(即代理)后面的多个用户,并且同一用户可以从不同位置发布。

两者都不是特别好,如果有可能我建议他们在开始时输入一个电子邮件地址,将帖子存储为未确认,通过电子邮件发送确认链接,只有点击它才能使帖子正式发布。再次,不是防弹,因为它不会阻止人们发布多个电子邮件帐户,但它比上面的选项好一点。

HTH

答案 1 :(得分:0)

使用会话变量来跟踪用户的行为。