Asp.Net Web Formları arasında alternatif veri taşıma yöntemi
İki web formu arasında veri taşımak kullanılan yöntemler açısından genelde kararsız kalınan ve kolaya kaçmakla birlikte güvenlik açıklarına sebebiyet veren konuların başında gelir.
Klasik olarak kullanılan yöntem html form dahilinde oluşturulmuş formlarla post etmek ve diğer formda bu değerleri karşılamak. Ya da yazılacak özel bir sınıfa formdan gelen değerleri yazdırıp bir eventle kendi sayfasında ya da bilgilerin gönderileceği ikinci bir formda karşılayarak okumak ve yorumlamaktır.
Bu klasik kullanımlara ek olarak farklı bir methodu kısaca anlatmaya çalışacağım.
Öncelikli olarak System.Web.UI.Page dan türeyen kendimize has bir web.ui sınıfı olşuturalım ve oluşturacağımız web formları bu sınıftan türetelim. Oluşturduğumuz bu sınıfa PostValues adı altında bir Dictionary tipinde özellik ekledim. Eklediğim bu özelliği formlar arasında veri taşırken kullanacağım. Peki bu nasıl olacak ? İnceleyelim;
Veri girişi yapılacak formu mainform, veri gönderilecek formu da subform olarak kabul edersek, SubForm.aspx dosyamın içine;
şeklinde bir tanım yapıyorum. Bu tanımla birlikte hangi formdan hangi sayfadan gelecek verileri kabul edeceğimi tanımlamış oluyorum. Tanımladığım bu yapı sayesinde kod tarafında şöyle bir erişime sahip oluyorum;
Dictionary<string, string> postValues = PreviousPage.PostValues;
Tanımlamış olduğum özelliğe direk erişim sağlamış oluyorum.
Bu özelliği ana formda istediğim güvenlik önlemlerini alarak istediğim validasyonları kullanarak doldurabilir daha sonra da ikinci formda kontrol edebilirim. Peki bu post değerlerini hangi aşamada dolduracağım ? Bunun için önerebileceğim en doğru yer buton un Click eventidir.
