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.
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