Question

I'm working in a MOSS 2007 SP2 Enterprise deployment and I'm trying to add a cookie on a master page. Ideally, the javascript should check if the cookie exists and if it has a valid value, if so, it does nothing. If not, it would then execute some other javascript and set a cookie value that it's initially checking.

What is the process for setting Cookies in Sharepoint? Using document.cookie never sets/creates a cookie.

Was it helpful?

Solution

I got this working with javascript finally with the help of Mike Greene, @webdes03. This is what I ended up with:

<script type="text/javascript">
    function setCookie(name,value,days) {
       if (days) {
          var date = new Date();
          date.setTime(date.getTime()+(days*24*60*60*1000));
          var expires = "; expires="+date.toGMTString();
       }
       else var expires = "";
       document.cookie = name+"="+value+expires+"; path=/;secure";
    }

    function getCookie(name) {
       var nameEQ = name + "=";
       var ca = document.cookie.split(';');
       for(var i=0;i < ca.length;i++) {
          var c = ca[i];
          while (c.charAt(0)==' ') c = c.substring(1,c.length);
          if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
       }
       return null;
    }

    function checkAuth() {
      var result = getCookie('user');
      if (result != "ok") {
        var code = geoip_country_code();
            if (code == "US") {
                  setCookie('user','ok',0);
            } 
            else {
             window.location = "http://www.ourdom.ain/dir/invalid";
            }
        }
      }
    checkAuth(); 

OTHER TIPS

You could do it from code behind with something like that :

HttpCookie cookie;

if (HttpContext.Current.Request.Cookies["CookieName"] != null)
{
    cookie = HttpContext.Current.Request.Cookies["CookieName"];
}
else
{
    cookie = new HttpCookie("CookieName");
}

cookie["CookieKey"] = "YourValue";
cookie.Expires = DateTime.Now.AddYears(10);
HttpContext.Current.Response.Cookies.Add(cookie);
Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange
scroll top