2012-06-21 2 views
2
protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      this.GetLeft.Value = invited.GetInviteCountByWeb().ToString(); 
      HttpCookie oldCookie = Request.Cookies["Time"]; 
      if (oldCookie != null) 
      { 
       if (DateTime.Now.ToString("yyyy-MM-dd") == Convert.ToDateTime(oldCookie.Values["GetTime"]).ToString("yyyy-MM-dd")) 
       { 
        this.IsGet.Value = "false"; 
       } 
       else 
       { 
        HttpCookie newCookie = new HttpCookie("Time"); 
        newCookie.Values.Add("GetTime", DateTime.Now.Date.ToString("yyyy-MM-dd")); 
        newCookie.Expires = DateTime.Now.AddHours(24.0); 
        Response.Cookies.Add(newCookie); 
       } 
      } 
     } 
    } 

, но он не работает, то oldcookie равно нулю, когда браузер закрыт каждый раз .. так, как я могу установить кнопку нажмите один раз в день ??C# нажатие кнопки один раз в день

+0

Что вы пытаетесь сделать? В общем, вы не можете полагаться на браузер, чтобы удерживать постоянные куки-файлы, так как вы можете сказать браузеру удалить их, когда браузер закрыт в любом случае. – Paolo

+0

Почему вы используете свойство nullable 'this.IsGet'? Какой класс инкапсулирует этот метод? –

+0

Я добавил тег ASP.NET, чтобы уточнить. В любом случае это плохой подход, вам нужно хранить информацию на стороне сервера (на ум приходит БД), а не в cookie. Что делать, если пользователь автоматически очищает файлы cookie каждый раз, когда он закрывает браузер? – Alex

ответ

3

Ваше другое заявление не в том месте, попробуйте вот так;

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     this.GetLeft.Value = invited.GetInviteCountByWeb().ToString(); 
     HttpCookie oldCookie = Request.Cookies["Time"]; 
     if (oldCookie != null) 
     { 
      if (DateTime.Now.ToString("yyyy-MM-dd") == Convert.ToDateTime(oldCookie.Values["GetTime"]).ToString("yyyy-MM-dd")) 
      { 
       this.IsGet.Value = "false"; 
      } 
     } 
     else 
     { 
      HttpCookie newCookie = new HttpCookie("Time"); 
      newCookie.Values.Add("GetTime", DateTime.Now.Date.ToString("yyyy-MM-dd")); 
      newCookie.Expires = DateTime.Now.AddHours(24.0); 
      Response.Cookies.Add(newCookie); 
     } 
    } 
+0

не работает, обновите браузер, он показывает var, но перезапустите браузер, oldcookie - null ... –

+0

вы можете показать мне другой метод, который ограничивает пользователя, может нажать кнопку один раз в день? –

Смежные вопросы