【问题标题】:Preventing anonymous user from submiting form many times in ASP.NET without SqlMembershipProvider防止匿名用户在没有 SqlMembershipProvider 的情况下在 ASP.NET 中多次提交表单
【发布时间】:2009-04-27 11:53:20
【问题描述】:
我有一个简单的表单,可以将选定的答案转储到 XML 文件中。如何防止匿名用户多次提交此表单?
我不是在寻找完全防弹的解决方案,而且我有一个限制,我不能使用数据库,因此没有 SqlMembershipProvider。
某些 cookie 检查会起作用吗?如何做到这一点?
提前谢谢你。
更新:更准确地说,我的意思不仅仅是一些意外提交表单,而是为了防止一周前访问该网站的用户再次提交此表单。
【问题讨论】:
标签:
c#
.net
asp.net
webforms
anonymous-access
【解决方案1】:
简而言之,您不能完全可靠。如果你不介意像你说的那样防弹,你也可以
a) 将 cookie 保存到客户端计算机,并在下次有人发帖时检查它。显然,用户可以删除 cookie,所以并不出色。
b) 您可以存储提交的 IP 地址。这样做的问题是,您将阻止多个用户在同一 IP 后面提交,即代理,并且同一用户可以从不同位置发布。
两者都不是特别好,如果可能的话,我建议让他们在开始时输入电子邮件地址,将帖子存储为未确认,通过电子邮件发送确认链接,并且只有在他们点击后才将帖子设为官方.同样,不是防弹,因为它不会阻止人们使用多个电子邮件帐户发帖,但它比上面的选项要好一些。
HTH