asp.net, formlarda sürekli hidden inputlar içerisinde __VIEWSTATE ve __EVENTVALIDATION değerleri saklıyor. bunlar her istekte değişiyor.
aspx bir sayfaya POST yapacaksanız, ilk önce anasayfaya bir istek yapıp session bilgilerinizi almanız, bu ilk istekte yukarıdaki değişkenlerin değerlerini almanız gerekiyor.
|<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="(.*?)" />|
gibi bir regEx deseni ile alıp, değeri urlencode() fonksiyonundan geçirmeniz gerekiyor. Zira, benim denemememde 23307 karakter olan(!) bu değerin içinde + gibi karakterler var. Veri yollanırken + karakterleri boşluk haline geçtiği için, invalid viewstate şeklinde hata mesajı alıyorsunuz. Dolayısıyla urlencode() gerekli.
İkinci istekte de - asıl istekte - birinci istekteki session bilgilerini de kullanmanız gerekli.