2012-04-24 26 views
0

我用C#和ASP編寫了一段時間的應用程序,現在我做了一個與cookie無關的小改動,它並不爲IE創建cookie,但它創建他們爲Firefox。Cookie使用C#的IE爲空,但不是用於Firefox的

從我的login.aspx:

  HttpCookie cLevel = new HttpCookie("Level"); 
      cLevel.Value = consulta.retornarNivel(Login2.UserName, Login2.Password).ToString(); 
      cNivel.Expires = DateTime.Now.AddMinutes(30); 
      cNivel.Domain = Request.Url.Host.ToString(); 
      HttpCookie cUser = new HttpCookie("User"); 
      cUser.Value = Login2.UserName; 
      cUser.Expires = DateTime.Now.AddMinutes(30); 
      cUser.Domain = Request.Url.Host.ToString(); 


      //create cookies.. 
      Response.Cookies.Add(cLevel); 
      Response.Cookies.Add(cUser); 

      //redirect to Services 
      Response.Redirect("Services.aspx"); 

現在我Services.aspx,在我的Page_Load我有這樣一行:

lbWelcome.Text = "Welcome" + Server.HtmlEncode(Request.Cookies["User"].Value); 

對IE這條線給我:對象引用未設置到一個對象的一個​​實例。 在Firefox上它完美解析。

什麼可能影響我的代碼與FF?

+0

爲什麼你甚至打擾設置域?這對於響應url來說當然是有效的,因此設置域本身可能是罪魁禍首 - IE可能不會對此做出響應。 – Tejs 2012-04-24 15:13:09

+0

你確定cookie沒有被創建,但沒有任何價值嗎?也就是說,當您將該值指定爲cookie的值時,是否驗證了Login2.UserName是否已填充?這會導致相同的錯誤 - 傳遞給HtmlEncode的Value屬性將爲null。 – 2012-04-24 15:28:39

+0

Cookie正在Login2_Authenticate()事件上創建,首先我檢查它是否爲空,並且它是否通過SQL有效,然後創建cookie – GlacialVoid 2012-04-24 15:46:02

回答

0

用服務器時間設置cookie是最糟糕的方式。如果客戶得到了不同的時間,你認爲會發生什麼?

相關問題