今天突然出现,非常奇怪。我们无法弄清楚发生了什么变化,但它之前是有效的。
基本上我们有一个名为“ProjectSession”的类,它包含静态属性和与会话有关的方法
主要的是ProjectSession.ProjectId
,它只是HttpContext.Current.Session["ProjectID"]
的包装器。创建新项目时,我们在此属性中设置ID。如果用户已经有项目,我们在页面加载if (!IsPostBack)
上设置值。很简单。
然而,今天中午我们突然开始看到这个值从会话中消失了。实际上整个会话对象正在清除。在网站的第一页上,如果用户有项目,我们会设置值。然后在第一次按下Button时,我们检查值并且它为null。
我们今天处理的每一段代码似乎都没有影响到这一点,实际上一切都在我们的生产服务器上工作正常,而不是在我们的本地机器上。
如果有任何想法可能会导致这种情况,请告诉我。
P.S。 - >我们有双重,三重和四重检查。有0行代码表示ProjectSession =
,正好有2行代码表示ProjectSession.ProjectID =
,这些是我在此问题中提到的2行。
答案 0 :(得分:2)
Cassinni将一直重置“应用程序池”(它与IIS不同)。您应该尽可能在接近生产的环境中进行测试。至少我建议你使用IIS,如果它是你试图解决和重现的一个关键错误。
答案 1 :(得分:2)
答案是有人将此行添加到我们的Web.Config文件中:
<httpCookies domain="THEPUBLICSITE" />
因此,当我们在本地工作时,服务器认为我们正在尝试跨站点脚本(XSS)。