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; }
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; } }
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); }
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; } }
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); } }
private static void OnCookieJarChanged(OssiferCookie oldCookie, OssiferCookie newCookie) { var handler = CookieChanged; if (handler != null) { handler (oldCookie, newCookie); } }