Makale Özeti

Merhaba bu makale serisinin önceki bölümlerinde adım adım dinamik bir web sitesi oluşturduk. Şimdi ise o sitenin bilgilerini güncellemeyi incelleyeceğiz. Elbette bunu yapmak için ilk önce bir yetkilendirme oluşturmalıyız. Bunun için bu makalemde Expression Web'de kullanıcı yaratma ve login işlemlerini anlatacağım. Serinin ileriki makalelerinde siteyi güncelleyeceğiz. Elbette bu güncellemeler ve güvenlik Expression Web ile belli bir sınırda olacak. Daha karışık ve üst seviye güncelleme işlemleri için Visual Studio ve programla bilgisi devreye girmektedir.

Makale


Folder List'teki web.config dosyasını açalım. Bu dosyayı Expression Web, database bağlantısı kurduğumuzda otomatik yaratmıştı. FRP Kitap Sitesi için oluşan web.config dosyası aşağıdaki gibidir.

<configuration>
<connectionStrings>
<add name="FrpKitapSitesiConnectionString" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="FrpKitapSitesiConnectionString2" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="FrpKitapSitesiConnectionString3" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="FrpKitapSitesiConnectionString4" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="FrpKitapSitesiConnectionString5" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="FrpKitapSitesiConnectionString6" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="FrpKitapSitesiConnectionString7" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="FrpKitapSitesiConnectionString8" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="FrpKitapSitesiConnectionString9" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="FrpKitapSitesiConnectionString10" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>

web.config'in sonuna alttaki kodu biz ekleyeceğiz. Böylece güvenliğin form bazlı olacağını belirtmiş olduk. Yani yapılacak değişiklikler için kullanıcıların formları kullanarak siteye bağlanması gerekecek..

<configuration>

    <connectionStrings>
        <add name="FrpKitapSitesiConnectionString" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
        providerName="System.Data.SqlClient" />
        <add name="FrpKitapSitesiConnectionString2" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
        providerName="System.Data.SqlClient" />
        <add name="FrpKitapSitesiConnectionString3" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
        providerName="System.Data.SqlClient" />
        <add name="FrpKitapSitesiConnectionString4" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
        providerName="System.Data.SqlClient" />
        <add name="FrpKitapSitesiConnectionString5" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
        providerName="System.Data.SqlClient" />
        <add name="FrpKitapSitesiConnectionString6" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
        providerName="System.Data.SqlClient" />
        <add name="FrpKitapSitesiConnectionString7" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
        providerName="System.Data.SqlClient" />
        <add name="FrpKitapSitesiConnectionString8" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
        providerName="System.Data.SqlClient" />
        <add name="FrpKitapSitesiConnectionString9" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
        providerName="System.Data.SqlClient" />
        <add name="FrpKitapSitesiConnectionString10" connectionString="Data Source=EKAYA\SQLEXPRESS;Initial Catalog=FrpKitapSitesi;Integrated Security=True"
        providerName="System.Data.SqlClient" />
    </connectionStrings>

        <system.web>
            <roleManager enabled="true" />
            <authentication mode="Forms" />
        </system.web>


</configuration> 

Şimdi master page'den yeni bir sayfa oluşturup, login.aspx olarak kaydediyoruz. Content alanına Toolbox>ASP.NET Controls>Login altından Login kontrolünü sürükleyip bırakıyoruz.



Login kontrolümüz content alnında hazır. Her kontrolde olduğu gibi Login'inde küçük okla açılan özellikleri ile ilgili bir task menüsü bulunmakta.



Bu menüdeki AutoFormat'a tıklayarak dilediğiniz bir görünüşü seçebilirsiniz.



Ama login ekranının görünüşünü Tag Properties kutusunu kullanarak biz belirleyeceğiz.




<asp:Login runat="server" id="Login1" BackColor="#333333" BorderColor="Black" BorderPadding="5" BorderStyle="Dotted" BorderWidth="1px" FailureText="Kullanıcı adı veya şifre yalnış. Tekrar deneyin" Font-Bold="True" Font-Overline="False" Font-Strikeout="False" LoginButtonText="Bağlan" PasswordLabelText="Şifre:" RememberMeText="Beni hatırla." TitleText="Yönetim Paneli Giriş" UserNameLabelText="Kullanıcı adı: ">
<TitleTextStyle BackColor="Black" />
<TextBoxStyle BackColor="#CCCCCC" Width="150px" BorderWidth="1px" BorderColor="Black" />
<LoginButtonStyle BackColor="Black" BorderStyle="Solid" ForeColor="White" BorderWidth="1px" BorderColor="#D2D2D2" Font-Size="Small" />
<FailureTextStyle ForeColor="#FFFFCC" />
</asp:Login>



Login ekranımızı hazırladığımıza göre şimdi bu login için kullanıcı tanımlamamız, yaratmamız gerekiyor. Bunun için çok fazla kaygılanmanıza gerek kalmayacak. Expression Web bunu bizim için kolayca halledecek. Hazırlayalım. admin.master master page'inden bir sayfa yaratıp, user_temp.aspx olarak kaydediyoruz. Bu kullanıcı yaratmamıza yarayacak bir sayfa olacak. Her şey bittiğinde bu sayfayı mümkünse sileceğiz. Kesinlikle sitenin yayın yapacağı hostinge bu sayfanın upload edilmemesi gerekiyor. Şimdi sayfanın content alanına Toolbox>ASP.NET Controls>Login altından CreateUserWizard kontrolünü sürükleyip bırakıyoruz.



Bu kontrolünde bir çok özelliği var ama bu örnekte biz bu işi üyelik için değil de, siteyi düzenleyebilmek için yaptığımızdan özellikleri ile ilgilenmeyeceğiz. Sayfayı (F12) ile browserda açıyoruz.



Şimdi siteyi düzenleyecek yönetici olarak formu dolduruyoruz. Bu aşamada password kısmı önemli. Şifrenizin en az 7 karakterden ve en az bir adet non-alphanumeric karakter içeriyor. Non-alphanumeric karakter sayılar ve harfler dışındaki her şeyi içeriyor. Ben burada şifreyi "erbugkaya_" olarak belirledim. 



Create User ile işlemi tamamlayınca karşımıza başarıyla tamamlandı mesajı geliyor. Gerçekten bu kadar mı? Şimdi bir kullanıcı mı yaratıldı? Peki nereye?



Expression Web bu işi de bizim için halletti. Site klasörünün altında App_Data isminde bir klasör ve içinde kullanıcı bilgilerini tutan bir database yarattı.



Biraz önce hazırladığımız login.aspx sayfasını tekrar açıyoruz. Login olunca hangi sayfaya yönlendirileceğimizi ayarlayacağız. Bunun için login kontrolünün Tag Properties kutusunda, DestinationPageUrl'yi kitap hızlı listesi sayfasına quickList.aspx'e yönlendiriyoruz.



login.aspx sayfasını kontrol için ön izleme ile browser'da açıyoruz. Ve kullanıcı adımızı şifremizi girip bağlanıyoruz. Her şeyi doğru yaptıysak kitapların hızlı listesi sayfasına bağlanmalıyız.

Şimdi login olmuş kullanıcıya logout imkanı sunmalıyız. Aynı zamanda kullanıcıyı da bildireceğiz.  Bu logout imkanının  bağlanılmış her sayfada görünmesini istediğimiz için bunu navigasyonun altındaki alana hazırlayacağız. Bunun için master page'i açıyoruz.ve navbox DIV'nin içine UL sonuna Toolbox>ASP.NET Controls>Login altından LoginView kontrolünü sürükleyip bırakıyoruz.



<div id="navBox">
    <ul>
        <li><a href="default.aspx">Ana Sayfa</a></li>
        <li><a href="bookLists.aspx">Kitap Listesi</a></li>
        <li><a href="quickList.aspx">Hızlı Liste</a></li>
        <li><a href="writers.aspx">Yazarlar</a></li>
        <li><a href="messages.aspx">Mesajlar</a></li>
        <li><a href="frp.aspx">FRP Nedir?</a></li>
    </ul>
    <asp:LoginView runat="server" id="LoginView1">
    </asp:LoginView>
</div>

LoginView Tasks kutusunda LoggedInTemplate'i seçiyoruz ve template alanına "Merhaba" yazıp bir boşluk bırakıyoruz.



Şimdi Merhaba kelimesinin devamına Toolbox>ASP.NET Controls>Login altından LoginName kontrolünü sürükleyip bırakıyoruz.



LoginName kontrolünün arkasına bu sefer Toolbox>ASP.NET Controls>Login altındaki LoginStatus kontrolünü sürükleyip bırakıyoruz. Ve tasks kutusunda Logged In'i seçiyoruz.

 

LoginStatus kontrolünün tag properties kutusundaki LogoutText'i Çıkış olarak değiştiriyoruz.



Ve çıkış yaptığımızda hangi sayfada olursak olalım tekrar login sayfasına dönmek istiyorsak, LogoutAction'ı RedirectToLoginPage olarak ayarlıyoruz.



Görünüşü düzenlemek için logout bölümüne özel CSS kuralı yazıyoruz.
.logoutText {
    color: #000000;
    margin-left:10px;
}

Merhabadan başlayan diziyi SPAN tagı içine alıyoruz ve CSS kuralımız bu SPAN'a uyguluyoruz.
<asp:LoginView runat="server" id="LoginView1">
    <LoggedInTemplate>
        <span class="logoutText">Merhaba
        <asp:LoginName runat="server" id="LoginName1"/>&nbsp;|&nbsp;
        <asp:LoginStatus runat="server" id="LoginStatus1" LogoutText="Çıkış" LogoutAction="RedirectToLoginPage" />
        </span>
    </LoggedInTemplate>
</asp:LoginView>

Şimdi buraya kadar yaptıklarımızı test edelim. İlk önce login.aspx sayfasını açıyoruz. ve (F12) ile browserda açıyoruz. Kullanıcı adı ve şifremizi girip "Bağlan" a basınca her şey yolunda ise kitap listemizin açılması gerekir.



Bu sayfada menünün altında bize özel bir karşılama ve "Çıkış" bulunmalı. Eğer çıkışa bastığımızda sayfa login.aspx sayfasına dönüyorsa login işlemlerini başarıyla tamamlamışız demektir.



Bu makalemde sitedeki verileri güncellemenin ilk aşaması olarak kullanıcı yaratma ve login işlemlerini anlattım.

Çalışmanın dosyalarını buradan indirebilirsiniz. (Bunun yanında database'i kendi bilgisayarınızda oluşturmalı ve webconfig'i kendinize göre ayarlamalısınız.)

İyi çalışmalar

Teşekkürler.
Örneği buradan indirebilirsiniz.