🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / webBrowser1 ile Tüm cookieleri alma Get All Cookies

1-) C# RMOS - webBrowser1 ile Tüm cookieleri alma Get All Cookies

 

 

using System;

using System.Collections;

using System.Net;

using System.Reflection;

using System.Runtime.InteropServices;

using System.Text;

using System.Windows.Forms;

 

namespace KbsCalisanBot

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        public string baseLink = "https://kbscalisan.egm.gov.tr/";

        public string username = "k.ad@gmail.com";

        public string sifre = "sifre";

        bool ilk = false;

        WebBrowser webBrowser1;

        [DllImport("wininet.dll", SetLastError = true)]

        public static extern bool InternetGetCookieEx(

        string url,

        string cookieName,

        StringBuilder cookieData,

        ref int size,

        Int32 dwFlags,

        IntPtr lpReserved);

 

        private const Int32 InternetCookieHttponly = 0x2000;

 

        private void Form1_Load(object sender, EventArgs e)

        {

            ilk = true;

            webBrowser1 = new WebBrowser();

            webBrowser1.ScriptErrorsSuppressed = true;// sürekli çıkan uyarıları kapatmak için

            webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);

            webBrowser1.Navigate(baseLink);

            webBrowser1.Dock = DockStyle.Fill;

            panel1.Controls.Add(webBrowser1);

        }

        public void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

        {

            var webBrowser = sender as WebBrowser;

            webBrowser.DocumentCompleted -= webBrowser1_DocumentCompleted;

            string url = webBrowser.Url.ToString();

            Console.WriteLine("URL -> " + url);

            if (ilk)

            {

                webBrowser.Document.GetElementById("txtkullaniciadi").SetAttribute("value", username);

                webBrowser.Document.GetElementById("txtsifre").SetAttribute("value", sifre);

                ilk = false;

            }

        }

 

        public static CookieContainer GetUriCookieContainer(Uri uri)

        {

            CookieContainer cookies = null;

            // Determine the size of the cookie

            int datasize = 8192 * 16;

            StringBuilder cookieData = new StringBuilder(datasize);

            if (!InternetGetCookieEx(uri.ToString(), null, cookieData, ref datasize, InternetCookieHttponly, IntPtr.Zero))

            {

                if (datasize < 0)

                    return null;

                // Allocate stringbuilder large enough to hold the cookie

                cookieData = new StringBuilder(datasize);

                if (!InternetGetCookieEx(

                    uri.ToString(),

                    null, cookieData,

                    ref datasize,

                    InternetCookieHttponly,

                    IntPtr.Zero))

                    return null;

            }

            if (cookieData.Length > 0)

            {

                cookies = new CookieContainer();

                cookies.SetCookies(uri, cookieData.ToString().Replace(';', ','));

            }

            return cookies;

        }

 

        public CookieCollection GetAllCookies(CookieContainer cookieJar)

        {

            CookieCollection cookieCollection = new CookieCollection();

 

            Hashtable table = (Hashtable)cookieJar.GetType().InvokeMember("m_domainTable", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance, null, cookieJar, new object[] { });

 

            foreach (var tableKey in table.Keys)

            {

                String str_tableKey = (string)tableKey;

                if (str_tableKey[0] == '.')

                {

                    str_tableKey = str_tableKey.Substring(1);

                }

                SortedList list = (SortedList)table[tableKey].GetType().InvokeMember("m_list", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance, null, table[tableKey], new object[] { });

                foreach (var listKey in list.Keys)

                {

                    String url = "https://" + str_tableKey + (string)listKey;

                    cookieCollection.Add(cookieJar.GetCookies(new Uri(url)));

                }

            }

            return cookieCollection;

        }

 

        private void btnTumCalisanlariListele_Click(object sender, EventArgs e)

        {

            var cookies = GetUriCookieContainer(new Uri(baseLink));

            Api2 api = new Api2();

            foreach (Cookie cookie in GetAllCookies(cookies))

            {

                api.cookies.Add(cookie);

            }

            var gets = api.requestGet("https://kbscalisan.egm.gov.tr/Proje/tesiscalisanekle.aspx");

        }

    }

}

 

 

 

 2023 Nisan 27 Perşembe
 276