Пример #1
0
 private static Cookie fromOssiferCookie(OssiferCookie cookie)
 {
     Cookie ret = new Cookie(cookie.Name, cookie.Value, cookie.Path, cookie.Domain);
     ret.HttpOnly = cookie.HttpOnly;
     ret.Secure = cookie.Secure;
     return ret;
 }
Пример #2
0
        private void CookiesChanged(OssiferCookie oldCookies, OssiferCookie newCookies)
        {
            bool allCookiesAreAvailable = true;

            foreach (Cookie cookie in REQUIRED_COOKIES)
            {
                OssiferCookie ossiferCookie = OssiferSession.GetCookie(cookie.Name, cookie.Domain, cookie.Path);
                if (ossiferCookie == null || string.IsNullOrEmpty(ossiferCookie.Value))
                {
                    allCookiesAreAvailable = false;
                }
            }

            if (allCookiesAreAvailable && UserLoggedIn != null)
            {
                Cookie[] cookies = new Cookie[REQUIRED_COOKIES.Length];
                for (int i = 0; i < REQUIRED_COOKIES.Length; i++)
                {
                    Cookie requiredCookie = REQUIRED_COOKIES[i];
                    cookies[i] = fromOssiferCookie(OssiferSession.GetCookie(requiredCookie.Name, requiredCookie.Domain, requiredCookie.Path));
                }

                UserLoggedIn(cookies);

                /* remove self from CookieChanged, so we only alert the user once */
                OssiferSession.CookieChanged -= CookiesChanged;
            }
        }
Пример #3
0
        private static Cookie fromOssiferCookie(OssiferCookie cookie)
        {
            Cookie ret = new Cookie(cookie.Name, cookie.Value, cookie.Path, cookie.Domain);

            ret.HttpOnly = cookie.HttpOnly;
            ret.Secure   = cookie.Secure;
            return(ret);
        }
Пример #4
0
        private void CookiesChanged(OssiferCookie oldCookies, OssiferCookie newCookies)
        {
            bool allCookiesAreAvailable = true;
            foreach (Cookie cookie in REQUIRED_COOKIES) {
                OssiferCookie ossiferCookie = OssiferSession.GetCookie(cookie.Name, cookie.Domain, cookie.Path);
                if (ossiferCookie == null || string.IsNullOrEmpty(ossiferCookie.Value))
                    allCookiesAreAvailable = false;
            }

            if (allCookiesAreAvailable && UserLoggedIn != null) {
                Cookie[] cookies = new Cookie[REQUIRED_COOKIES.Length];
                for (int i=0; i < REQUIRED_COOKIES.Length; i++) {
                    Cookie requiredCookie = REQUIRED_COOKIES[i];
                    cookies[i] = fromOssiferCookie(OssiferSession.GetCookie(requiredCookie.Name, requiredCookie.Domain, requiredCookie.Path));
                }

                UserLoggedIn(cookies);

                /* remove self from CookieChanged, so we only alert the user once */
                OssiferSession.CookieChanged -= CookiesChanged;
            }
        }
Пример #5
0
        public static OssiferCookie GetCookie(string name, string domain, string path)
        {
            var name_raw = IntPtr.Zero;
            var domain_raw = IntPtr.Zero;
            var path_raw = IntPtr.Zero;

            try {
                var ptr = ossifer_session_get_cookie (
                    name_raw = GLib.Marshaller.StringToPtrGStrdup (name),
                    domain_raw = GLib.Marshaller.StringToPtrGStrdup (domain),
                    path_raw = GLib.Marshaller.StringToPtrGStrdup (path));
                if (ptr != IntPtr.Zero) {
                    var cookie = new OssiferCookie (ptr);
                    ossifer_cookie_free (ptr);
                    return cookie;
                }
                return null;
            } finally {
                GLib.Marshaller.Free (name_raw);
                GLib.Marshaller.Free (domain_raw);
                GLib.Marshaller.Free (path_raw);
            }
        }
Пример #6
0
 private static void OnCookieJarChanged(OssiferCookie oldCookie, OssiferCookie newCookie)
 {
     var handler = CookieChanged;
     if (handler != null) {
         handler (oldCookie, newCookie);
     }
 }