public static Models.OpenIdToken TokenFromCookie(NameValueCollection storedCookieValue, bool shouldDecode) { string storedValue = storedCookieValue[TokenFieldName]; if (shouldDecode && null != storedValue) { storedValue = HttpUtility.UrlDecode(storedValue); } if (null != storedValue) { Models.OpenIdToken storedToken = null; if (CachedTokens.TryGetValue(storedValue, out storedToken)) { if (storedToken.IsExpired()) { // Don't require expired tokens. CachedTokens.Remove(storedValue); storedToken = null; } return(storedToken); } } return(null); }
public static CookieHeaderValue CookieForToken(Models.OpenIdToken token) { string lookupId = null; if (null != token) { lookupId = Guid.NewGuid().ToString(); CachedTokens[lookupId] = token; } var nv = new NameValueCollection(); nv[TokenFieldName] = lookupId; var cookie = new CookieHeaderValue(TokenCookieName, nv); #if !DEBUG cookie.Secure = true; #endif cookie.HttpOnly = true; cookie.Expires = DateTimeOffset.Now.AddMinutes(120); cookie.Path = "/"; return(cookie); }