Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

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.

share|improve this question

3 Answers 3

up vote 2 down vote accepted

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(); 

share|improve this answer
    
Happy to help :-) –  webdes03 Nov 24 '10 at 19:31

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);
share|improve this answer
    
I don't have any experience in code behinds, I'm not sure how to implement those. Basically I want to bake it onto the master page and the only method I "reliably" know is to put it in the head with javascript. –  PirateEric Nov 23 '10 at 16:29
    
Does your Javascript code is executed on the "onLoad" event of the page ? It needs to be if you want it to be fired. –  Sébastien Levert Nov 23 '10 at 17:45
    
The javascript is in the page head, does it need to reside in the body? –  PirateEric Nov 24 '10 at 14:52

Using Jquery cookie plugin may be one of the easiest ways to do that : http://plugins.jquery.com/project/cookie

share|improve this answer
    
Looks as if that no longer exists –  PirateEric Dec 7 '11 at 14:03

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.