Example #1
0
        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);
        }
Example #2
0
        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);
        }