CommandName'lerinden yakaladığımız ImageButton'lara OnClientClick property sini kullanarak mesaj verdirme işlemi aşağıdaki gibi sonuçlanmakta.
Asp.NET GridView CommandField için OnClientClick Methodu
27 Haziran 2012CommandName'lerinden yakaladığımız ImageButton'lara OnClientClick property sini kullanarak mesaj verdirme işlemi aşağıdaki gibi sonuçlanmakta.
Gönderen Aslı Nurkan Tarikulu zaman: 10:30 0 yorum
Etiketler: ASP.NET-AJAX, Örnekli-Resimli Anlatım, WEB
SqlDataSource: Getting @@Identity after Insert
14 Temmuz 2011Yesterday I was developing a simple form using a SqlDataSource to INSERT or UPDATE when saving the form. The form consisted of a few controls and a button. In the case of a new item, on clicking the save button I am executing SqlDataSource1.Insert(). For an existing item, I’m using an “ID” parameter on the query string which in turn is used by the UPDATE command. So I need the ID of the row I’ve just inserted to allow the user to update the form. I should mention my table has a column called “ID” of type int which is specified as the auto-incrementing identity column. I put together the form in less than 30 minutes and then spent twice that time trying to find the solution you are reading now. I was sorely tempted to ditch the DataSource as this is straightforward when you’re executing your SQL commands directly in the code-behind. But I was curious and persevered until I found the answer: Firstly, let me describe how to set up the DataSource to do the insert. The InsertCommandType is “Text”. For the InsertQuery click the … button to open the Command and Parameter dialog. Use the query builder, if you like, to create your insert statement. After the insert statement append “SET @Identity = @@Identity;” so our insert command looks something like this: INSERT INTO TestTable (TestCol) VALUES (@TestValue); SET @Identity = @@Identity; The statement above has 2 parameters. One is TestValue we’re setting in to TestCol. The other is Identity which will be the ID of the column we insert. Click Add Parameter and type “TestValue”, Parameter source is control, and ControlID is a textbox. Add another parameter called “Identity”. This time click Show Advanced Properties, set Direction to “Output” and Type to “int” (leaving Parameter source as “None”). Now the trick is catching the DataSource at the right time so that our output parameter will have a value. Don’t mistake the DataSource.InputParameters as the place to look as this merely describes the parameters we’ve configured above. To actually see the parameters after execution you need to catch the OnInsertedevent. Here we have SqlDataSourceStatusEventArgs which contains the command and its parameters after the command has executed. protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e) { //Read the value of the @Identity OUTPUT parameter string sID = e.Command.Parameters["@Identity"].Value.ToString(); //Display new ID Label1.Text = sID; } So with the ID known I can now redirect the user to "page.aspx?ID=" + sID such that they may update the form. Alıntıdır...
Gönderen Aslı Nurkan Tarikulu zaman: 13:47 0 yorum
Etiketler: ADO.NET, ASP.NET-AJAX, SQL
DataList içindeki DropDownList’in Value’sunu SelectedIndexChange'de alma
28 Nisan 2009
Senaryoda bir DataList'imiz olsun. O DataList'in içinde de DropDownList'imiz olsun. DropDownList'in SelectedValue'sunu yakalamak için aşağıdaki kodu yamamız yeterli olur.DropDownList ddl = sender as DropDownList;
string deger = ddl.Items[ddl.SelectedIndex].Value;
Gönderen Aslı zaman: 10:31 1 yorum
Etiketler: ASP.NET-AJAX
DropDownList ve Validation Conrol
27 Nisan 2009DropDownList'imizde bir alanın muhakkak seçilmesini ve seçilmediği taktirde uyarı vermesini istemiyorsak, DropDownList'in "Initial Value" özelliğinden faydalanabiliriz.
Zaman zaman bilgilendirmek ve dikkati çekmek için DropDownList'lere "Seçiniz.." vs gibi ibareler ekleriz. Seçili bir alan olmadığı taktirde uyarı göstermesini istiyorsak, bir RequiredFieldValidator ekleyelim, "Control to validate" özelliğine de muhakkak şeçili geçerli bir alanın olmasını istideğiniz DropDownList'i bağlayalım. Initial Value suna "Seçiniz.." itemının value sunu yazalım.
Gönderen Aslı zaman: 13:34 2 yorum
Etiketler: ASP.NET-AJAX
ContentPage'den MasterPage'deki Kontrole Ulaşma
10 Nisan 2009ContentPage'den MasterPage'deki kontrole ulaşmak için ContenPage'in kodunda ulaşmak
Panel pnl = (Panel)this.Master.FindControl("pnlEgitim");pnl.Visible=False;
UserControl uc = (UserControl)this.Master.FindControl("Egitimler1");uc.Visible = false;
Gönderen Aslı zaman: 12:15 0 yorum
Etiketler: ASP.NET-AJAX
RowCommand Kullanımına Örnek
07 Nisan 2009Gridview'in Row'undan "Detay" LinkButton'una tıklandığında o satıra dair bazı değerlere ulaşmak istiyoruz.


Gönderen Aslı zaman: 11:08 2 yorum
Etiketler: ASP.NET-AJAX, Örnekli-Resimli Anlatım
Mars Kullanımı
03 Kasım 2008ConnectionString katarı içerisinde MultipleActiveResultSets=true kullanılmaması halinde, MARS etkisi görülmemektedir. Varsayılan olarak MultipleActiveResultSets özelliğinin değeri false’ dur. MARS tekniği, MultipleActiveResultSets değeri açıkça true’ ya set edildiği takdirde çalışmaktadır.
örnek:
bu örnekte web.config dosyasının içine eklendi
<connectionstrings>
<add name="CnnStr" connectionstring="Data Source=.;Initial Catalog=DenemeDB;User ID=sa;Password=123456;MultipleActiveResultSets=true" providername="System.Data.SqlClient">
connectionstrings>
Gönderen Aslı zaman: 10:56 0 yorum
Etiketler: ASP.NET-AJAX
Regular Expression Kullanımı
30 Ekim 2008Emrah Çetiner beyefendinin bloğundan alıntıdır.
4 Eylül 2008, Perşembe, 08:52
.
Herhangi bir karakteri temsil eder.
d.rk > dark, dork, ...
p..l > pool, paul, ...
*
Kendinden önce gelen karakterin, hiç olmayacağını veya bir çok kez olabilceğini temsil eder.
go*gle > ggle, gogle, google, gooooogle, ...
mo.* > mo, more, mobil, ...
mobil(phone)* > mobil, mobilphone, mobilphonephone, ...
+
*'dan farkı kendin önce gelen karakterin en az bir defa olması gerektiğidir. Birden fazla da olabilir.
go*gle > gogle, google, gooooogle, ...
mobil(phone)* > mobilphone, mobilphonephone, ...
?
Kendinden önce gelen karakterin, hiç olmayacağını veya bir kez olabileceğini temsil eder.
go?gle > ggle, gogle
mobil(phone)? > mobil, mobilphone
()
Gruplama yapmamızı sağlar.
(mobilphone) > mobil, phone
[]
Dizi veya aralığı temsil eder.
d[ao]rk > dark, dork
d[ao]+rk > daark, dooork
mobil[A-Z] > mobilA, mobilB, mobilC, ...
[^]
"^" simgesinin [] içersinde kullanılması, kendisinden sonraki karakterlerin kullanılmaması gerektiği anlamına gelir.
b[^aeiou].* > break, blog
{}
Kendinden önce gelen karakterin tekrar edilme miktarını temsil eder. İçersinde tek değer yazılırsa zorunlu, virgülle ayrılmış çift değer yazılırsa min. max. aralık belirtir.
go{2}gle > google
go{2,5}gle > google, gooogle, goooogle, gooooogle
[A-Z]{3} > ABC, DEF, AEF, GGG, HRF,...
[a-z]{2,} > AB, DE, ABF, DEFRT, FFGERTGV,...
[0-9]{3-5} > 165, 789, 1966, 7786, 77788, 98765
\
Kendinden sonra gelen özel karakterin kullanılabilmesini sağlar.
google? > googl, google
google\? > google?
(?#comment) > açıklama yazmak için
^ > Satır başı
$ > Satır sonu
\d > Herhangi bir rakam [0-9]
\D > Herhangi bir rakam olmayan [^0-9]
\w > Herhangi bir harf, rakam veya alt çizgi [a-zA-Z0-9_]
\w > Herhangi bir harf, rakam veya alt çizgi olmayan [^a-zA-Z0-9_]
Kendimiz yazmaktansa, hali hazırda, çok kullanılan bazı regex'leri regexlib.com dan da bulabiliriz.
Gönderen Aslı zaman: 12:02 0 yorum
Etiketler: ASP.NET-AJAX
DataList de QueryString ile Alfabetik Sayfalama
18 Aralık 2007
Bu makalemizde DataList kontrolünde alfabetik sayfalama yapacağız. Gridview da wizardlarla verileri çektiğimiz zaman bize sayfalama özelliğinide sağlıyor fakat datalistte verileri wizardlarla bile çeksek bize sayfalama özelliğini kendisi vermiyor. Bazen verileri göstermek için datalist kontrolünü kullanmamız gerekebilir, ve bu durumda bir sayfada ya 1000 tane kaydı bir anda göstereceğiz ki bu hiç tavsiye edilmez yada alfabetik veya numeric olarak sayfalamak için kodlarımızı kendimiz yazacağız.
Biz bu makalemizde alfabetik sayfalama yapacağız. Bunun için alfabetik linklerimizi oluşturacağız ve linke tıklandığında seçilen harfle başlayan kayıtları getirebilecek metodumuzu yazacağız.
İlk olarak DataListin içini doldurmak için metodumuzu yazıyoruz.
Kayıtlarımızın datalist kontrolünde görünmesi için html kodlarımızı da yazıyoruz.
Seçilen harfle başlayan kayıtların getirilmesi için çağrılacak metod.
Datalist in footer template kısmına harfleri seçebilmek için alfabetik linklerimizi oluşturuyoruz.
Link olarak hyperlink kontrolünü kullanacağız, ve hangi harfi seçerse o harfi yine aynı sayfaya querystring le gönderiyoruz.
Sayfamız ilk çalıştırıldığında bütün kayıtları listeliyoruz.
Eğer linke tıklanılıp çağrılmışsa zaten seçilen harfi querystringle gönderip metotta parametre olarak alıyoruz.
Şimdi herhangi bir harfi seçelim.

Böylelikle bir makalemizin daha sonuna geldik. Bir başka makalemizde görüşmek dileğiyle.
Alıntıdır - Yazar: Veysi Sala
Gönderen Aslı zaman: 23:42 4 yorum
Etiketler: ADO.NET, ASP.NET-AJAX, Örnekli-Resimli Anlatım, SQL
SQL Injection - Injection Flaws
Injection Flaws
Dinamik SQL sorgularının kullanıldığı sistemlerde oluşabilecek bir açıktır.
Bir kullanıcı adı parola sınaması yapılan SQL cümleciğinde kullanılabilir.
Select MemberID
From Member
Where Username = '" + txtUsername.Text + "' and Password = '" + txtPassword.Text + "'"
Şeklinde bir SQL cümlesinin kullanıldığı bir sistemde aşağıdaki ifadeleri girelim
txtUsername.Text : ' or 1=1 --
txtPassword.Text : 123
ifadesi aşağıdaki SQL cümlesinin çalıştırılmasını sağlar
Select MemberID
From Member
Where Username = ' ' or 1=1 -- ' and Password = '" + txtPassword.Text + "'"
-- ifadesi SQL Server için yorum satırı anlamına geldi için çalıştırılmaz.
Where ifadesini inceleyelim :
Username = ' ' false döner, 1 = 1 ise true. Or karşılaştırmasında ise False or True’nun sonucu true’dur. Dolayısıyla doğru kullanıcı adı parola girilmese dahi geriye tüm kayıtlar döner ve saldırgan ilk kaydın yetkisi ile içeriye giriş yapmış olur.
Saldırgan “SQL Injection” yöntemi ile veritabanı hakkında daha detaylı bilgi edinebilir. SQL Server üzerinde System Administrator hesabı açabilir, Tüm Tabloların listesini ve bu tabolardaki bilgilere ulaşabilir. Hatta web uygulaması sa yetkisine sahip bir kullanıcı ile çalıştırılıyorsa xp_cmdshell ‘format C:’ ile sisteme format bile atabilir.
Dinamik SQL sorgularındaki bu içeri sızmaları engellemenin yolu parametre kullanmaktır.
Bunu SqlCommand nesnesine SqlParameter tipinde parametre ekleyerek yapabiliriz.
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "[ ConnectionString ]";
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = " Select MemberID"
+ " From Member"
+ " Where Username = @username and Password = @password";
cmd.Parameters.AddWithValue("@username",txtUsername.Text);
cmd.Parameters.AddWithValue ("@password",txtPassword.Text);
conn.Open();
int MembetID = Convert.ToInst32(cmd.ExecuteScalar());
conn.Close();
Bu şekilde kullandığımız dinamik SQL sorgularında Injection yönetimini bertaraf etmiş oluruz.
Kaynaklar
http://www.owasp.org/index.php/Top_10_2007-A2
http://www.spidynamics.com/papers/SQLInjectionWhitePaper.pdf
http://www.mutasyon.net/makaleoku.asp?id=728
Gönderen Aslı zaman: 21:29 3 yorum
Etiketler: ASP.NET-AJAX, Örnekli-Resimli Anlatım, SQL
Kötü Niyetli Dosya Çalıştırma
Kötü Niyetli Dosya Çalıştırma
Web uygulamanıza FileUpload ile dosya yüklemesi yapmak durumunda iseniz gelen dosyanın türünü mutlaka denetlemek gerekir. Örneğin bir Forum uygulaması yaptınız ve kullanıcılar kendi resimlerini resimler klasörüne upload edebilmekteler. Saldırgan hazırlamış olduğu bir asp sayfasını resimler klasörüne upload eder ve www.siteniz.com/resimler/foo.asp şeklinde tam yolu yazarak dışardan göndermiş olduğu bir dosyayı sisteminizde çalıştırabilir.
Bu şekilde sisteminizin izin verdiği ölçüde yeni dosyalar oluşturabilir. Örneğin anadizinde ki default.aspx dosyasını silip yerine bir default.asp dosyası oluşturabilir. Böylece siteniz açıldığında “hacked by hacker ana” yazısı ile karşılaşabilirsiniz.
Böyle üzücü durumların yaşanmaması için sisteminize upload edilen dosyaların türünü denetlemek gerek.
Bunun için System.IO.Path ve System.Text.Regex namespacelerinden yararlanacağız.
Önce upload edilen dosyasın uzantısı nı alacağız ve kabul ettiğimiz dosya türleri içerisinde olup olmadığını denetleyeceğiz.
string uzanti = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName);
System.IO.Path.GetExtension metodu uzntıyı bize “.jpg” gibi noktalı bir şekilde verir.
Kullanıcı tarafından gönderilen dosya ismi büyük harfler ile yazılmış olabilir. Buda birazdan yapacağımız karşılaştırmada farklıymış gibi algılanmasına sebep olur. Bu yüzden uzantı harflerini küçültelim.
uzanti = uzanti.ToLower();
Kabul edeceğimiz dosya uzantıları için teker teker if kontrolü yazmamak için Regular Expression ifadelerinden yararlacağız.
using System.Text.RegularExpressions;
.....
if(Regex.IsMatch(uzanti,".jpg.jpeg.gif.png.bmp") == false)
{
// gönderilen dosya formatı uygun değil
}
else
{
// gönderilen dosya formatı uygun.
}
Önemli bir konu. Umarım faydalı olmuştur.
Kaynak
http://www.owasp.org/index.php/Top_10_2007-A3
Gönderen Aslı zaman: 21:17 3 yorum
Etiketler: ASP.NET-AJAX, Örnekli-Resimli Anlatım, WEB
Hacking The Code - Asp.net web application Security
14 Ekim 2007
Syngress Publishing, Inc., the author(s), and any person or firm involved in the writing, editing, or production (collectively Makers) of this book (the Work) do not guarantee or warrant the results to be obtained from the Work.There is no guarantee of any kind, expressed or implied, regarding the Work or its contents. The Work is sold AS IS and WITHOUT WARRANTY. You may have other legal rights, which vary from state to state.
In no event will Makers be liable to you for damages, including any loss of profits, lost savings, or other incidental or consequential damages arising out from the Work or its contents. Because some states do not allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation may not apply to you.
Table of Contents
- Hacking the Code?ASP.NET Web Application Security
- Chapter 1 - Managing Users
- Chapter 2 - Authenticating and Authorizing Users
- Chapter 3 - Managing Sessions
- Chapter 4 - Encrypting Private Data
- Chapter 5 - Filtering User Input
- Chapter 6 - Accessing Data
- Chapter 7 - Developing Secure ASP.NET Applications
- Chapter 8 - Securing XML
- Appendix A - Understanding .NET Security
- Appendix B - Glossary of Web Application Security Threats
TYPE : CHM
LANG : English
PAGE : 500Download 5 MB
Gönderen Aslı zaman: 00:57 0 yorum
Etiketler: ASP.NET-AJAX, e-Kitap
DataRepeater ile Şablon Oluşturmak
03 Ekim 2007“DataRepeater”, yinelenen verileri HTML biçiminde sunmak için kullanılan kontroldür. DataRepeater kontrolü içerik yerleşimi ile ilgili sunduğu templateler ile datalarımızı istediğimiz formatta görüntülememize yardım eder.
DataRepeaterın içerdiği teplateler:
- ItemTemplate : Tekrarlanan herbir verinizin görüneceği şablonu oluşturmanızı sağlar. DataReader ın içinde bulundurmamız zorunlu olan tek “template” dir.
- AlternatingItemTemplate : Alternatif satır şablonu anlmına gelmektedir. Ardarda görüntülenen her bir verinin okunurluk açısından birbirinden ayrılması için farklı renk ve biçim oluşturmamızı sağlar.
- HeaderTemplate : ItemTeplate in üstünde bir başlık görünümü oluşturmanızı sağlar. Olması zorunlu değildir.
- FooterTemplate : ItemTemplate ten sonra bitiş mahiyetinde bir şablon oluşturmanızı sağlar. Olması zorunlu değildir.
- SeperatorTemplate : Herbir verinin arasında ayıraç olarak kullanabileceğiniz bir şablonu oluşturmanızı sağlar. Olması zorunlu değildir.
DataRepeater tepmlatelerini kullanarak yaptığım bir örnek;

Örneğin kodları;
Gönderen Aslı zaman: 11:48 1 yorum
Etiketler: ASP.NET-AJAX, WEB
İnternet Teknolojilerinin Dünü, Bugünü ve Yarını
01 Eylül 2007
CETURK, Eylül ayında da yine bir seminer gerçekleştiriyor. Katılımın ücretsiz olduğu seminer, 08 Eylül 2007 Cumartesi günü 14:00-16:00 saatleri arasında Microsoft Türkiye İstanbul ofisinde gerçekleştirilecektir.
Konuşmacı : Ali Rıza Babaoğlan
Seminer Yeri :Microsoft Türkiye İstanbul Ofisi
Kayıt olmak için : TIKLAYINIZ
ETKİNLİK İÇERİĞİ
Web 1.0 Ne İdi?
Web 2.0 Neler Sundu?
Web 3.0 Neler Sunacak?
KONUŞMACI
Byte Türkiye'de İnternet Editörü olarak çalışmakta olan Ali Rıza Babaoğlan, web tabanlı teknolojileri ve web tabanlı uygulama geliştirme alanında çalışmalarını sürdürmektedir. Ali Rıza Babaoğlan hakkında daha detaylı bilgiye http://www.alibabaoglan.com/ adresinden erişebilirsiniz.
ETKİNLİK SPONSORLARI 

ETKİNLİK HEDİYEMİZ
Seminere katılan 3 üyemize çekilişle aşağıdaki kitaplardan hediye edilecektir. :


Gönderen Aslı zaman: 23:51 0 yorum
Etiketler: ASP.NET-AJAX, Seminer Duyuruları
ASP.NET AJAX Semineri
27 Ağustos 2007
Microsoft Akademik Yazılım Geliştiricileri Grubu ve nedirTV?com'un birlikte düzenleyeceği bu etkinliğe davetlisiniz. Seminer ile ilgili ayrıntılar aşağıdadır.
Not: Seminere katılım ücretsizdir.
ASP.NET AJAX SemineriAjanda
- AJAX: Asenkron JavaScript & XML
- ASP.NET AJAX- ASP.NET AJAX Mimarisi
- Visual Studio 2005'te ASP.NET AJAX Web Uygulamaları Geliştirmek
- ASP.NET AJAX Sunucu Kontrolleri
- Örnek Uygulamalar
Kontenjan: 40 kişi
Tarih: 29 Ağustos 2007 Çarşamba
Saat: 15.00 - 17.00
Adres: Netron Bakırköy Şubesi, İstasyon Cad. No:4 Bakırköy - İstanbul
Kayıt işlemi için buraya tıklayınız.
Gönderen Aslı zaman: 10:43 0 yorum
Etiketler: ASP.NET-AJAX, Seminer Duyuruları




