wmaraci reklam

C# Form App -> Web Sitesinin Session Bilgilerini Kullanmak? (Login Olma)

7 Mesajlar 1.137 Okunma
pst.net
wmaraci reklam

PhpMania PhpMania WM Aracı Kullanıcı
  • Üyelik 23.04.2016
  • Yaş/Cinsiyet 41 / E
  • Meslek Proğramcı
  • Konum Kastamonu
  • Ad Soyad A** Ç**
  • Mesajlar 85
  • Beğeniler 11 / 11
  • Ticaret 0, (%0)
C# ile Web Sitesine Giriş yapıp geriye bir Json yanıtı alıyoruz. UserID yi de elde ettik.
Kullanıcıya özel bir sayfada nasıl gezinebiliriz(örn : profil sayfası)?
 

 

wmaraci
reklam

awoken awoken WM Aracı Kullanıcı
  • Üyelik 06.06.2019
  • Yaş/Cinsiyet 19 / E
  • Meslek Öğrenci
  • Konum Diğer
  • Ad Soyad B** G**
  • Mesajlar 1002
  • Beğeniler 250 / 478
  • Ticaret 41, (%100)
Öncelikle nasıl giriş yapıyorsunuz; HTTP isteği atarak mı, C# Web Browser componentini kullanarak mı, Selenium ile mi?

HTTP isteği atarak ise:
https://stackoverflow.com/questions/6275616/keeping-a-session-when-using-httpwebrequest

Web Browser Form Element'i ile ise:
https://stackoverflow.com/questions/2830586/setting-a-cookie-in-a-webbrowser-control

Selenium ile ise:
https://www.selenium.dev/documentation/en/support_packages/working_with_cookies/
PhpMania

kişi bu mesajı beğendi.

PhpMania PhpMania WM Aracı Kullanıcı
  • Üyelik 23.04.2016
  • Yaş/Cinsiyet 41 / E
  • Meslek Proğramcı
  • Konum Kastamonu
  • Ad Soyad A** Ç**
  • Mesajlar 85
  • Beğeniler 11 / 11
  • Ticaret 0, (%0)
HTTP (Get) metodu ile. Zaten HTTPWEBREQUEST te yazdığınız metodu kullanıyorum. Ama özel bir sayfaya geldim. Anasayfaya "Has Moved" uyarısı ile fırlatıyor. Neden? Çünkü browserımın SESSION ı kullandığı gibi C# ın da session ı kullanmasını sağlayamıyorum.
 

 

ulas ulas C# & ASP.NET Kullanıcı
  • Üyelik 25.07.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Full Stack Developer
  • Konum Diğer
  • Ad Soyad U** K**
  • Mesajlar 1403
  • Beğeniler 404 / 404
  • Ticaret 18, (%100)
PhpMania Sayfaya girmek için tek kontrol edilen değişken UserID olmayabilir.
 

 

technovenue.com
wmaraci
Mersin evden eve nakliyat

emreyvz emreyvz .NET Core & Angular & PHP E-Mail Onaysız
  • Üyelik 19.04.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Anadolu
  • Ad Soyad E** Y**
  • Mesajlar 689
  • Beğeniler 110 / 250
  • Ticaret 24, (%100)
Eğer sayfa REST API'den veri alıyorsa User ID, Token gibi bilgileri girişte alın. Ardından Network'ten API 'nin bazı endpoint'lerini tespit edin.(profile vs.) Son olarak gitmek istediğiniz sayfada yapılan request'i Header ve body bilgilerini de dikkate alarak taklit edip dönmesi gereken verilere yine JSON formatında ulaşın.

Bu yöntem REST API kullanan ve verileri encrypted olarak dönmeyen sitelerde kullanılabilir.
 

 

PhpMania PhpMania WM Aracı Kullanıcı
  • Üyelik 23.04.2016
  • Yaş/Cinsiyet 41 / E
  • Meslek Proğramcı
  • Konum Kastamonu
  • Ad Soyad A** Ç**
  • Mesajlar 85
  • Beğeniler 11 / 11
  • Ticaret 0, (%0)
Adresi aşağı verdim. GET metodunda mutlaka yanlışlar vardır. Ama bir de sizin özellikle COOKIE bilgilerine bakmanızı ve kodu test etmenizi sağlamak için aşağı bırakıyorum.





public string GET(string URL,string at,string userID)
{
cookies = new CookieContainer();
var httpClient = new HttpClient();
ServicePointManager.MaxServicePointIdleTime = 1000;
ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3 | System.Net.SecurityProtocolType.Tls12;
string jsonString = "";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);

// var request = new RestRequest(URL, Method.GET);


request.Method = "GET";
request.Credentials = CredentialCache.DefaultCredentials;
// ((HttpWebRequest)request).UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0)";
request.Accept = "/";
request.KeepAlive = true;
request.UseDefaultCredentials = true;
request.CookieContainer = new CookieContainer();
httpClient.DefaultRequestHeaders.Clear();
httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + at);
//httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", at);
// httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// httpClient.DefaultRequestHeaders.ConnectionClose = true;

httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", at);
request.Proxy.Credentials = CredentialCache.DefaultCredentials;
// request.ContentType = "application/x-www-form-urlencoded";
request.ContentType = "application/json";
request.Headers["Authorization"] = "Bearer "+at;
request.AllowAutoRedirect = false;
request.CookieContainer.Add(new Cookie("access_token", at, "/", ".auth.trendyol.com"));
request.CookieContainer.Add(new Cookie("COOKIE_TY.Entrance", "x="+userID+"tx="+at, "/", ".trendyol.com"));
request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)";
request.Headers["cache-control"] = "no-cache";
WebResponse response = request.GetResponse();
//var response = httpClient.Execute(request);
if (at == null) {
MessageBox.Show("Çerez Parametresi Alınamadı!");
return "Çerez Parametresi Alınamadı!";
}



StreamReader sr = new StreamReader(response.GetResponseStream());
jsonString = sr.ReadToEnd();
sr.Close();

return jsonString;
}






Adres : "trendyolun sitesi" /Coupon/GetCouponsAsync
 

 

PhpMania PhpMania WM Aracı Kullanıcı
  • Üyelik 23.04.2016
  • Yaş/Cinsiyet 41 / E
  • Meslek Proğramcı
  • Konum Kastamonu
  • Ad Soyad A** Ç**
  • Mesajlar 85
  • Beğeniler 11 / 11
  • Ticaret 0, (%0)

emreyvz adlı üyeden alıntı

Eğer sayfa REST API'den veri alıyorsa User ID, Token gibi bilgileri girişte alın. Ardından Network'ten API 'nin bazı endpoint'lerini tespit edin.(profile vs.) Son olarak gitmek istediğiniz sayfada yapılan request'i Header ve body bilgilerini de dikkate alarak taklit edip dönmesi gereken verilere yine JSON formatında ulaşın.

Bu yöntem REST API kullanan ve verileri encrypted olarak dönmeyen sitelerde kullanılabilir.


@emreyvz bana bu konuda yardım eder misiniz? proje dosyasını atarım isterseniz?
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al