folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder C# Vbulletin Login Fonksiyonu.



C# Vbulletin Login Fonksiyonu.

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DuPi
    DuPi's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    Merhaba arkadaşlarlar.

    Vbulletin forumuma C# ile login olmak istiyorum. ve bu loginden geriye değer döndürmek istiyorum. aşağıdaki kodu kendim yazdım. ama geri dönen değerde giriş yapmadığı anlaşılıyor. yardımcı olabilir bilir misiniz hata nerde ?

    Not : MD5Sifrele( fonksiyonu md5 üretiyor);

     

     public string LoginBitirim(string Userx, string Passx)
            {
                WebClient wb_ = new WebClient();
                
                    byte[] login = wb_.UploadData("http://www.ornekvbuletinforumu.com/login.php?do=login", "POST", 
                    System.Text.Encoding.ASCII.GetBytes("vb_login_username="+Userx+"&vb_login_password=&submit.x=14&submit.y=17&s=&securitytoken=guest&do=login&vb_login_md5password="+MD5Sifrele(Passx)+"&vb_login_md5password_utf="+MD5Sifrele(Passx)));
                  
                    string geriDonen = Encoding.UTF8.GetString(login);
    
                return geriDonen;
            }

     


    Ne zaman birşey öğrenmek istesem, Birden Vaktim Kalmıyor ?
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FCN
    FCN's avatar
    Kayıt Tarihi: 28/Eylül/2007
    Erkek

    Şunu dener misin ?

      static void Main(string[] args)
            {
                string cookie = login("Domain/login.php?do=login", "username", "password"); 
                Console.Write(cookie);
                Console.Read();
            }
            static string login(string url, string username, string password)
            {
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                string cookie = "";
                string values = "vb_login_username=" + username + "&vb_login_password=" + password
                                    + "securitytoken=guest&"
                                    + "cookieuser=checked&"
                                    + "do=login";
                req.Method = "POST";
                req.ContentType = "application/x-www-form-urlencoded";
                req.ContentLength = values.Length;
                CookieContainer a = new CookieContainer();
                req.CookieContainer = a;
    
                System.Net.ServicePointManager.Expect100Continue = false; 
    
                using (StreamWriter writer = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII)) { writer.Write(values); }
    
                HttpWebResponse c = (HttpWebResponse)req.GetResponse();
                foreach (Cookie cook in c.Cookies) { cookie = cookie + cook.ToString() + ";"; }
    
                return cookie;
            }

     

    FCN tarafından 31/Tem/14 20:11 tarihinde düzenlenmiştir
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ustura
    ustura's avatar
    Banlanmış Üye
    Kayıt Tarihi: 29/Ağustos/2005
    Erkek

    curl ile daha kolay login olabilirsin  login olduktan sonra cookie degerini alman gerek 

     ornek http://pastebin.com/3ujJNvwq

     

     

    ustura tarafından 31/Tem/14 20:19 tarihinde düzenlenmiştir

    itsin oglum sen adam degilsin
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DuPi
    DuPi's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    ustura php değil :)

    FCN cookie geri dönen değer :) login olup olmadığımı anlamadım :D

     yaw delphiye dönmek istemiyorum :(

    DuPi tarafından 31/Tem/14 20:48 tarihinde düzenlenmiştir

    Ne zaman birşey öğrenmek istesem, Birden Vaktim Kalmıyor ?
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DuPi
    DuPi's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    1 kez up yapayım. 


    Ne zaman birşey öğrenmek istesem, Birden Vaktim Kalmıyor ?
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Elif - Efe
    undefined-01
    undefined-01's avatar
    Kayıt Tarihi: 19/Aralık/2003
    Homo

    hocam cookie de kullanici kodu veya kullanici adi geliyorsa login olmustur yanlismi dusunuyorum ?


    Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DuPi
    DuPi's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    haklısında lastvisit 0 dönüyor.


    Ne zaman birşey öğrenmek istesem, Birden Vaktim Kalmıyor ?
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ustura
    ustura's avatar
    Banlanmış Üye
    Kayıt Tarihi: 29/Ağustos/2005
    Erkek
    DuPi bunu yazdı

    haklısında lastvisit 0 dönüyor.

    hocam curl kullanarak c# ile daha kolay login olabilirsin c# ile sadece kullanıcı adı sifreyi post ediceksin curl uzerinden login olacaksın curl kopru gibi dusun :) 


    itsin oglum sen adam degilsin
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FCN
    FCN's avatar
    Kayıt Tarihi: 28/Eylül/2007
    Erkek

    dün zamanım yoktu bakamamıştım. Bugün kodu biraz editledim ve denedim sorunsuz çalışıyor olması lazım.

     

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Web;
    using System.Net;
    using System.Net.Http;
    
    
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                var postParams = new[] {
        new HttpParam("vb_login_username", "KullanıcıAdı"),
        new HttpParam("cookieuser", "1"),
        new HttpParam("vb_login_password", "SİFRE"),
        new HttpParam("securitytoken", "guest"),
        new HttpParam("do", "login"),
    };
    
                string url = "http://DOMAIN/login.php?do=login";
                var container = new CookieContainer();
                var buffer = Encoding.UTF8.GetBytes(GetQueryString(postParams));
    
                var request = (HttpWebRequest)HttpWebRequest.Create(url);
                request.CookieContainer = container;
                request.UserAgent = "Mozilla/5.0";
                request.Method = "POST";
                request.KeepAlive = true;
                request.AllowAutoRedirect = true;
                request.CookieContainer = container;
                request.ContentLength = buffer.Length;
                request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
                request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                request.AllowAutoRedirect = true;
                using (var requestStream = request.GetRequestStream())
                    requestStream.Write(buffer, 0, buffer.Length);
    
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    request = (HttpWebRequest)HttpWebRequest.Create("http://DOMAIN"); //Login olduktan sonra anasayfaya geri dönüyoruz
                    request.CookieContainer = container; //cookieleri unutmayalım
                   HttpWebResponse response2 = (HttpWebResponse)request.GetResponse();
                    if (response2.StatusCode == HttpStatusCode.OK || response2.StatusCode == HttpStatusCode.NotModified)
                    {
                        using (var reader = new StreamReader(response2.GetResponseStream()))
                        {
                            var result = reader.ReadToEnd();
                            MessageBox.Show(result); 
                        }
                    }
                }
            }
            public struct HttpParam
            {
                private string _key;
                private string _value;
    
                public string Key { get { return HttpUtility.UrlEncode(_key); } set { _key = value; } }
                public string Value { get { return HttpUtility.UrlEncode(_value); } set { _value = value; } }
    
                public HttpParam(string key, string value)
                {
                    _key = key;
                    _value = value;
                }
    
                public override string ToString()
                {
                    return string.Format("{0}={1}", Key, Value);
                }
            }
            private static string GetQueryString(HttpParam[] args)
            {
                return args != null
                        ? string.Join("&", Array.ConvertAll(args, arg => arg.ToString()))
                        : string.Empty;
            }
        }
    }
    
    FCN tarafından 01/Ağu/14 13:02 tarihinde düzenlenmiştir
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DuPi
    DuPi's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    FCN teşekkürler akşam evde kontrol ederim.

    delphide hiçbirşey yapmadan otomatik mi alıyor bu değerleri ? idhhtp ile login olup sayfaları dolaşabiliyorsun ama c# biraz daha karmaşık. hele bi çözelim kısmetse bunudu çözeriz. teşekkürler


    Ne zaman birşey öğrenmek istesem, Birden Vaktim Kalmıyor ?
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    ustura bunu yazdı
    DuPi bunu yazdı

    haklısında lastvisit 0 dönüyor.

    hocam curl kullanarak c# ile daha kolay login olabilirsin c# ile sadece kullanıcı adı sifreyi post ediceksin curl uzerinden login olacaksın curl kopru gibi dusun :) 

    hocam .net framework un curl diye bir sınıfı ya da özeliği yok, harici olarak birileri tarafından yazılmış open source kütüphane var. daha önce kullandım bazı işler için

    http://sourceforge.net/projects/libcurl-net/

    tabii sonuçta yine .net frameworkun system.net kütüphanesini kullanıyor.. çözmek biraz zor olabilir..

     

    @fcn, yazdığın struct yapısını beğendim hoş göründü gözüme :) 


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
Toplam Hit: 1946 Toplam Mesaj: 13