我现在做的一个简单的网站在线投票。在网站中有几好几个不同页面有投票的,我现在是用cookie保存用户投票的信息
FIDCookie = new HttpCookie(FID);//FID 是变量。我让他动态的分配
FIDCookie.Value = FID;
FIDCookie.Expires = DateTime.Now.AddHours(1);
HttpContext.Current.Response.Cookies.Add(FIDCookie);
string FID=是相应页面下的对应的ID号。
比如工地页面 FID=30 FName="工地", FID=31 FName="工地"相册页面FID=30,FName="图片"。
1.按照上面的方法,如果两个FID相同就重叠了,后面的应该覆盖前面的。有什么好方法么解决这个冲突么。
2.可能我的投票的工地比较多。如果多余20个的话理论上他会覆盖前面的。投了一轮的话可以再投一轮,我设的一个小时界限就没有用了。
3.如果禁用了Cookie,我用Cookie验证就没有一点用处了。可以连续投票。可以用JS判断出浏览器是否禁用了Cookie。我在网上找个几个都没有用。比如if (navigator.cookiesEnabled)得到的结果总是为true。
4.我想过用IP和插入数据库的时间来验证,但局域网内所有电脑都是用的一个IP地址。好像行不通。
5.其他还有什么好的建议。。没多少分了。希望各位给我提提意见。
FIDCookie = new HttpCookie(FID);//FID 是变量。我让他动态的分配
FIDCookie.Value = FID;
FIDCookie.Expires = DateTime.Now.AddHours(1);
HttpContext.Current.Response.Cookies.Add(FIDCookie);
string FID=是相应页面下的对应的ID号。
比如工地页面 FID=30 FName="工地", FID=31 FName="工地"相册页面FID=30,FName="图片"。
1.按照上面的方法,如果两个FID相同就重叠了,后面的应该覆盖前面的。有什么好方法么解决这个冲突么。
2.可能我的投票的工地比较多。如果多余20个的话理论上他会覆盖前面的。投了一轮的话可以再投一轮,我设的一个小时界限就没有用了。
3.如果禁用了Cookie,我用Cookie验证就没有一点用处了。可以连续投票。可以用JS判断出浏览器是否禁用了Cookie。我在网上找个几个都没有用。比如if (navigator.cookiesEnabled)得到的结果总是为true。
4.我想过用IP和插入数据库的时间来验证,但局域网内所有电脑都是用的一个IP地址。好像行不通。
5.其他还有什么好的建议。。没多少分了。希望各位给我提提意见。
HttpBrowserCapabilities bc = Request.Browser;
Response.Write("<p>Browser Capabilities:</p>");
Response.Write("Type = " + bc.Type + "<br>");
Response.Write("Name = " + bc.Browser + "<br>");
Response.Write("Version = " + bc.Version + "<br>");
Response.Write("Major Version = " + bc.MajorVersion + "<br>");
Response.Write("Minor Version = " + bc.MinorVersion + "<br>");
Response.Write("Platform = " + bc.Platform + "<br>");
Response.Write("Supports Cookies = " + bc.Cookies + "<br>");
Response.Write("Supports VB Script = " + bc.VBScript + "<br>");
Response.Write("Supports JavaScript = " + bc.JavaScript + "<br>");
Response.Write("Supports ActiveX Controls = " + bc.ActiveXControls + "<br>");
aCookie.Values["FName"] = "图片";
aCookie.Expires = DateTime.Now.AddHours(1);
Response.Cookies.Add(aCookie);
和
HttpCookie aCookie = new HttpCookie(FID);
aCookie.Values["FName"] = "工地";
aCookie.Expires = DateTime.Now.AddHours(1);
Response.Cookies.Add(aCookie);
这两个cookie会同时存在么。。
aCookie.Values["TuPian"] = "图片";
aCookie.Expires = DateTime.Now.AddHours(1);
Response.Cookies.Add(aCookie);HttpCookie aCookie = new HttpCookie(FID);
aCookie.Values["GongDi"] = "工地";
aCookie.Expires = DateTime.Now.AddHours(1);
Response.Cookies.Add(aCookie);