Pages

bilgi paylaşım ve yayım hattı:
iphone, ipad, ios, cydia, apple, android, ics, installous, gezi, driver, linux, oyun

21 Kasım 2006 Salı

ASP kodlarını DLL yapmak üzerine - I

Asp ile bir ticari proje hazırladınız, yüklediniz ticari kişiliğin bilgisayarına. Çalışıyor ne ala diyerek başlangıçta seviniyorsunuz. Sonra çeşitli olasılıklar aklınızda gezinmeye başlıyor. Ya bu kodları birileri alır da kullanırsa. Çünkü asp ile yazdığınız kodlar (eğer webservera (IIS yada PWS) birileri ulaşabiliyorsa) gayet görünür ve savunmasız oluyorlar.

Bende aradım taradım denedim ve çözümü buldum. Asp kodlarınızın can alıcı kısımlarını DLL yaparsanız içeriğini kötü niyetli kişiler göremeyecek kodlarınız biraz olsun güvende olacak.

Peki bir DLL li asp uygulaması nasıl yapılır?
Öncelikle Visual Basic 6.0 ı açıyoruz. New Project penceresinden Activex DLL yi seçiyoruz. İlk olarak Project-References dan;
Microsoft Active Server Pages Object Library ve
Microsoft Active Server PAges ObjectContext Object i işaretleyip OK diyoruz. Şimdii; Class1 in içerisine aşağıdaki deneme amaçlı fonksiyonumuzu yazalım.

Public Function BilgiGetir(gelen As String) As String
BilgiGetir = gelen + " geldi"
End Function

File-Make Project1.dll diyerek dll mizi oluşturup c: ye kaydedelim.
DLL dosyamızı sisteme tanıtmak için Başlat-Çalıştır' a regsvr32 C:project.dll yazıp enterlayalım.

Şimdi sıra geldi asp dosyamızı oluşturmaya.
deneme.asp olarak oluşturduğumuz dosyanın içeriği aşağıdaki şekilde:
<%
Set Ornek = Server.CreateObject("Project1.Class1")
'burada project1 proje adı, class1 sınıf adı. dllnin ismi çok önemli değil.
response.write Ornek.BilgiGetir("giden metin")
'response.write komutu ekrana yazdırma komutu aspde. yani print gibi birşey, ornek nesnesindeki bilgigetir fonksiyonunu çağır ve ekrana yaz demiş olduk.
%>
web serverdan çalıştırınca asp sayfasından metin olarak "giden metin" kelimesi fonksiyona gitti. fonksiyonda bu metne "geldi" kelimesi eklendi. asp ye dönen değer olarak ekrana "giden metin geldi" yazdı.
Galiba başardık ;)
Not: Visual Basic projenizde değişiklik yaptığınızda make dll diyerek aynı dll nin üzerine yazmak istediğinizde erişim engellendi mesajı ile karşılaşırsınız. Dll dosyasının üzerine yazmadan önce
iisreset/stop
Regsvr32/u c:project1.dll
iisreset/start komutlarını sırası ile uygulayın. Böylece dll yi registry den kaldırmış olacağız. Tekrar aktif etmek için ise
iisreset/stop
Regsvr32 c:project1.dll
iisreset/start komutlarını komut isteminden yazmalıyız. Bu işlemleri sık sık yapacağımız için ilk üç kodu regkaydet.bat, ikinci üç kodu ise regkayittancikar.bat olarak kaydedip, bat dosyalarını çalıştırarak daha hızlı şekilde kullanılır hale getirebiliriz.

Hiç yorum yok:

Yorum Gönder

Blog Listem