Tags: , , , , , , | Categories: SSS (FAQ), Tip, Web Uygulaması Posted by okutbay on 29.09.2009 21:46 | Yorumlar (0)

You can add the <location> element with the “inheritInChildApplications” attribute to the root web.config. This attribute will prevent child applications inherit some specified configuration from the root web.config.

The attribute must be placed in the <configuration> section of the web.config. It looks like this:
<location path="." inheritInChildApplications="false">
<system.web>
 <!--
     ……
     Your settings

  -->
</system.web >
</location>

Referance:

SectionInformation.InheritInChildApplications Property

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , , , | Categories: Tip, Web Uygulaması Posted by okutbay on 09.09.2009 10:26 | Yorumlar (0)

You can use using statement to inculde different namespaces in you code behind file. But still you can't call methods from classes that live in other namespaces (Different from you page class namespace) from you content pages (.aspx).

To make this work you must use import namespace directive after you page directive.

    1 <%@ Import="" Namespace="ICF.Common" %>

This can be a hard tast if you have a lot of pages. So you can define your namespaces in you web.config file and call your business class methods in your .aspx pages whenever you want. 

    1 <?xml version="1.0"?>

    2 <configuration>

    3     <system.web>

    4         <pages>

    5             <namespaces>

    6                 <add namespace="ICF" />

    7                 <add namespace="ICF.Common"/>

    8             </namespaces>

    9         </pages>

   10     </system.web>

   11 </configuration>

Happy coding...

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , , , , , | Categories: Security, Web Uygulaması Posted by okutbay on 18.08.2009 13:51 | Yorumlar (0)

Web uygulamaları Internet üzerinden anonim (kimliği belirsiz) ziyaretçiler tarafından kullanılırlar. Kullanıcılar hakkında bilgi toplamak ya da sadece belirli kaynaklara erişimlerini sağlamak istiyorsak öncelikle onların kim olduğunu belirli bir kaynaktan sorgulayıp, doğru kişi olduklarını onaylamamız gerekir. Bu işleme "Kimliklendirme (Authentication)" denir.

Web uygulamalarında farklı kimliklendirme yöntemleri olsada Internet üzerinden erişilen uygulamalar için uygun olan kimliklendirme yöntemi "Forms" yöntemidir. (Bu noktadan sonra Forms Authentication olarak anılacaktır.)

Forms authentication kullanımını aktif hale getirmek için web uygulamanızın ayar dosyası Web.Config içinde <authentication mode="Forms" /> satırı yer almalıdır.

1 <configuration>
2 <system.web>
3 <authentication mode="Forms"/>
4 </system.web>
5 </configuration>

Aktif edilen Forms authentication için giriş sayfası, varsayılan sayfa, zaman aşımı, çerez adı gibi ayarlar yapılmalıdır. Bu noktada yapılabilecek ayalar bu kadar değildir. Detaylı bilgi için makalenin sonunda yer alan makaleye göz atmanızı öneririm.

1 <authentication mode="Forms">
2 <forms loginUrl="login.aspx"
3 defaultUrl="default.aspx"
4 timeout="30"
5 name=".ASPXAUTHWEBLEBICI"/>
6 </authentication>

Böylece FormsAuthenticationModule sınıfının gerektirdiği asgari ayarları yapmış oluruz. Artık kimliklendirme aşamasını takip eden "Yetkilendirme" (Authorization) aşaması için gerekli ayarları yapmaya geçebiliriz.

Yetkilendirme için web.config dosyamızda authorization elemanını kullanarak UrlAuthorizationModule sınıfını ayarlayabiliriz.

1 <system.web>

2 <authorization>

3 <deny users="?" />

4 </authorization>

5 </system.web>

Uygulamamızın ana ayar dosyasında yapılan bu ayarla birlikte uygulamamıza gelen anonim kullanıcıların kaynaklara erişimi reddedilerek kimliklendirme ayarında belirtilen giriş sayfasına kimliklendirme işlemi için gönderilmeleri sağlanacaktır. Burada soru işareti anonim (kimliksiz) kullanıcıları temsil ederken tüm kullanıcıları temsil etmek için "*" değeri kullanılabilir. Unutulmaması gereken noktalardan biri ise ayar dosyalarının yukarıdan aşağıya doğru işlendiğidir. Örneğin deny satırı üzerine yazacağınız <allow users="*" /> ayarı tüm kullanıcların siteye erişmesi anlamına gelecektir...

Önemli Not: Authentication ayarı sadece uygulamamızın ana klasöründe bulunan web.config dosyasında yapılabilirken authorization ayarı ana klasör veya alt klasörler için oluşturulacak web.config dosyalarında bulundukları klasörü kapsayacak şekilde yapılabilir. Yani uygulamanız anonim erişime açıkken sadece belli bir klasörü yetkili erişim için ayarlayabilirsiniz.

Belirlenen giriş sayfasına gelen kullanıcılar belirlenmiş olan veri kaynağından kimliklerini onayladıktan sonra ilgili kaynağa girmeye yetkiliyseler bu kaynağa erişebilirler. Aksi halde tekrar giriş sayfasına geri gönderilirler ve kaynağa erişmeye yetkili bir kullanıcı bilgisi ise giriş yapmaları beklenir. Bizim senaryomuzda kimlik doğrulamasını geçen tüm kullanıcılar kaynaklara erişmeye yetkilidir. Farklı kişi ya da gruplar için erişim deny ya da allow elemanları users ya da roles öznitelikleri ile kullanılabilir...

Bu noktada bazı kararlar vermeniz gerekecektir. Ama hangi kararları alırsanız alın temelde yapacağınız işlemler aynıdır. Kullanıcı bilgilerini web.config de depolayabilir ya da bir veritabanı tablosu, web servis gibi bir kaynakla kontrol edebilirsiniz. Her halukarda kullanıcı adı ve şifresini kullanıcıdan girmesini isteyeceğiniz bir sayfanız olacaktır. Kullanıcı bilgileri girip, giriş butonuna tıklayacak ve siz arka tarafta hangi mekanizmayı kullanıyor olursanız olun yapacağınız işlem bu kullanıcının varolup olmadığına bakmak, şifresinin uyup uymadığını kontrol etmek, doğru ise siteye girişine izin vermek yanlış ise tekrar giriş sayfasına yönlendirmek olacaktır.

Kısıtlanmış bir kaynağa erişilmek istendiği zaman yapılan ayarlar gereği kullanıcı dönüş adresi ile birlikte login sayfasına yönlendirilecektir.

Referanslar:

Explained: Forms Authentication in ASP.NET 2.0 (patterns & practices Developer Center)

How To: Use Forms Authentication with SQL Server in ASP.NET 2.0
http://msdn.microsoft.com/en-us/library/ms998317.aspx

How To: Use Membership in ASP.NET 2.0
http://msdn.microsoft.com/en-us/library/ms998347.aspx

How To: Use Role Manager in ASP.NET 2.0
http://msdn.microsoft.com/en-us/library/ms998314.aspx

1 kişi tarafından 3.0 olarak değerlendirildi

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , | Categories: Web Uygulaması Posted by okutbay on 06.08.2009 17:30 | Yorumlar (0)

In ASP.NET web application you can develop user controls and custom server controls to increase your productivity and decrease code repetition. To use these user controls at your web pages you can register like this:

<%@ Register Src="Controls/somecontrol.ascx" TagName="SomeControl" TagPrefix="myPrefix" %>

And use like this:

<html>
<body>
    
<form id="form1" runat="server">
        
<myPrefix:header ID="SomeControl1" runat="server" />
    </
form>
</body>
</html>

The registration step can be a bit pain if you have too much pages. Also its hard to change the name of the .ascx file name if you registered the control at too much pages.

To avoid these you can try to register your controls at your web.config file in more managable way.

<?xml version="1.0"?>
<configuration>
 
<system.web>
   
<pages>
      
<controls>
        
<add tagPrefix="myPrefix" src="~/Controls/somecontrol.ascx" tagName="S
omeControl"/>
        <
add tagPrefix="
myPrefix" src="~/Controls/othercontrol.ascx" tagName="OtherControl"/>
        <
add tagPrefix="CustomControl" assembly="CustomControlAssembly"/>
      </
controls>
    
</pages>
 
</system.web>
</configuration> 

So you can still use your controls in the same way but you can manage them at one location. And you can easily copy controls from one page to the other.

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , , | Categories: Hata, IDE, Web Uygulaması Posted by okutbay on 06.07.2007 08:57 | Yorumlar (0)

Geçenlerde Bursa Datahouse eğitim firmasında bir eğitim sırasında web.config dosyasına eklemek istediğimiz bir elemanı yazmaya başladığımızda intellisense özelliği bize önerilerde bulunmamış ve yarı yolda bırakmıştı. Biz de klavyemize kuvvet yazmıştık. Akabinde eğitimi takip eden arkadaşlardan birisi bunun "Web Site Administration Tool (WSAT)" a girdikten sonra gerçekleştiğini söylemişti.

Figür 1: Kaybolan Intellisense
Not: Web Site Administration Tool, basit bir web arayüzü ile uygulamanızla ilgili ayarlarınızı yapabilmeniz için .NET Framework 2.0 ile sağlanan bir araçtır. Visual Studio 2005 içinde "Website > ASP.NET Configuration" menü seçeneği ile ulaşabilirsiniz.

Gerçekten de WSAT a girdikten sonra web.config dosyamda intellisense kullanarak düzenleme yapamamaya başlamıştım.

Varsayılan bir web.config ile karşılaştırma yaptıktan sonra sorunun aracın eklediği XML Namespace tanımından kaynaklandığını farkettim.

Sorunu düzeltmek için configuration elemanında tanımlanan xmlns özniteliğini (attribute) kaldırmak yeterli oldu.
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

elemanını

<configuration>

şeklinde düzeltebilirsiniz...

Figür 2: Intellisense tekrar çalışıyor



Klavyeler şen ola...

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , | Categories: Web Uygulaması Posted by okutbay on 27.05.2007 15:12 | Yorumlar (0)
Web siteleri hiyerarşik olarak işlenen bir dizi XML yapılandırma dosyası ile yapılandırılırlar. Bu dosyalardan ilki machine.config dosyasıdır. .NET Framework config dizininde yeralır. Bu dizin genellikle şu konumdadır:

%WINDIR%\Microsoft.NET\Framework\versiyon\Config\machine.config


machine.config dosyası windows, konsol, sınıf kütüphanesi, web uygulamaları gibi tüm uygulama türleri için gerekli ayarların bulunduğu dosyadır. Bu ayarlar tüm makine çapında ayarlardır.

machine.config dosyasının bazı ayarlar hiyerarşi içinde bulunan web.config dosyaları tarafından ezilebilir (override). Global olanlar .NET Framework'ü tamamladıklarından korumalıdırlar ve web.config dosyaları tarafından ezilemezler.

Hiyerarşide sıradaki dosya machine.config ile aynı dizinde yer alan "kök (root)" web.config dosyasıdır. Bu dosya varsayılan web sunucu ayarlarını içerir. Daha önce de belirttiğimiz gibi bu ayarların bazıları machine.config dosyası ile yapılan ayarları ezebilir.





Seçmeli olarak her web sitemizin ana (root) dizinine web.config dosyası ekleyebiliriz. Bu dosya içinde önceki ayarları ezebilen ayarların yanı sıra ilave ayarlar da yapılabilir. Ayrıca her web uygulamımızda aynı şekilde şeçmeli olarak daha fazla ayar sağlayan veya önceki ayarları ezen web.config dosyasına sahip olabilir. Web uygulaması içindeki her alt dizin seçmeli olara önceki ayarların alt kümesinin geçerli olacağı bir web.config içerebilir.

Yapılandırma dosyaları en genelden en özele doğru işlenirler.

Bu dosyalar XML dosyaları oldukları için herhangibir text veya XML editör programı ile değiştirilebilirler. web.config dosyasını değiştirmenin bir diğer yöntemi ise .NET Framework Configuration eklentili Microsoft Management Console (MMC) kullanmaktır. Böylece sağlanan grafik kullanıcı arayüzü (GUI) ile bir yöneticinin değiştimek isteyebileceği bazı ayarlar rahatlıkla değiştirilebilir.

Ayrıca Visual Studio 2005 web.config dosyasının ayarlarının değiştirilebileceği araç olan "Web Site Administration Tool"u sağlar. Bu araca ulaşmak için "Website" menüsü altındaki "ASP.NET Configuration" menü seçeneği kullanılabilir. Bu araç bize güvenlik, uygulama yapılandırması, sağlayıcı yapılandırması kategorilerinde yapılandırma dosyasını düzenleme olanağı tanır.

Kaynak: MCTS Exam 70-528 Microsoft .NET Framework 2.0 Web-Based Client Development Trainnig Kit

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , , | Categories: Programlama, Web Uygulaması Posted by okutbay on 22.05.2007 02:19 | Yorumlar (0)

Geliştirmekde olduğumuz web uygulamalarının her birinde mutlaka duyacağımız ihtiyaç bilgilerin veritabanında saklanması ve buradan okunarak kişilere sunulmasıdır.

Web uygulamalarımızda veritabanını kullanabilmek için uygulamaya veritabana nasıl bağlanabileceğini anlatmamız gerekir. Uygulamanın veritanabına bağlanabilmesi için gerekli bilgiler bağlantı cümlesi içinde yeralırlar. Oluşturulan bağlantı cümlesi uygulama içinden kolayca erişilebilir ve çaba sarfetmeden değiştirilebilir olmalıdır.

Bu hedefle yola çıktığımızda ASP.NET Uygulamamızda bulunan (ya da sizin ekleyeceğiniz) web confguration dosyası bağlantı cümlelerimiz için uygun bir yer sağlamaktadır.

Zaman içinde ortaya çıkan yeni ihtiyaçlar ve yöntemler dosyanın bu işlevinde de değişikliklere neden oldu.

.NET Framework 1.1 ile bu dosya içinde anahtar-değer ikililerini saklayabileceğimiz <appSettings> bölümü mevcut idi. Biz de uygulama geliştirenler olarak bu bölümü bağlantı cümlelerimizi saklamak için kullanmaya başladık. .NET 2.0 da ise bu bölüm korunmakla beraber bağlantı cümlelerimize özel <connectionStrings> bölümü şemaya ilave edildi. Bu bölüm de appSettings yapısı ile aynı olmakla beraber farklı olarak anahtar-değer ikililerine ilave seçmeli bir nitelik olan  providerName de eklenebilmektedir.

Web.config

Boş bir web.config dosyasında bağlantı cümlelerimizi saklayabileceğimiz bölüm şu şeklilde olacaktır:

    1 <?xml version="1.0"?>

    2 <configuration>

    3     <connectionStrings>

    4         <!-- Baglanti Cumleleri bu bolume yazilacak -->

    5     </connectionStrings>

    6 </configuration>

Bu bölüme uygulama içinde kullanacağınız veritabanı ya da veritabanlarına ait bağlatı cümlelerini saklayabilirsiniz. Bu bölümde saklanacak bir bağlantı cümlesi şu şekilde yazılacaktır:

    1 <?xml version="1.0"?>

    2 <configuration>

    3     <connectionStrings>

    4         <add name="isim" connectionString="baglanti_cumlesi"/>

    5         <add name="isim2" connectionString="baglanti_cumlesi2" providerName="hangi_saglayici"/>

    6     </connectionStrings>

    7 </configuration>

Görüldüğü üzere bağlandı cümlesi anahtar-değer ikilileri şeklinde olabildiği gibi yanına ilave bir değer olarak sağlayıcı adı da eklenebiliyor.

Web.config içinde saklanan bağlantı cümlelerine kod ile ulaşmak

Artık isterseniz uygulama tarafıda bu bağlantı cümlesini nasıl kullanabileceğimize bakalım.
Herhangi bir web form sayfanıza bir label kontrolü ilave edin. Daha sonra webformun load olayında şu kodu yazarak etiketin text özelliğini ayarlayın.

    1 Label1.Text = System.Configuration.ConfigurationManager.ConnectionStrings["isim"].ToString();

Uygulamayı çalıştırdığınızda ekranda ilgili bağlantı cümlesinin 'connectionString' niteliğinde yazmakta olan değerin görüntülendiğini görmelisiniz. Kod ile diğer niteliklere ulaşmak için .ToString den önce ilgili nitelik seçilmelidir.

    1 Label1.Text = System.Configuration.ConfigurationManager.ConnectionStrings["isim2"].ConnectionString.ToString();

Bundan sonra tek yapmanız gereken kullandığını veritabanına uygun bağlantı nesnesinin ilgili özelliğine okuduğunuz bu değeri aktarmak ve bağlantıyı açkmaktır.

Veritabanına bağlanma ve bilgileri okuma konusu başka bir yazıda incelenecetir. 

Klavyeler şen ola...

 

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5