ASP.NET Membership (Üyelik Sistemi) kurulumu

İlk makalem sevgili arkadaşım Selman’ın isteği üzerine asp.net üzerinde membership kurulumu ve incelikleri olacak.

Membership yapımızı kurmak için ilk önce veritabanına gerekli tabloları, viewları ve procedureları oluşturmamız gerek. Bunun için ilk önce Visual Studio Command Prompt çalıştırıyoruz.
Başlat -> Programlar -> Visual Studio ->Visual Studio Tools -> Visual Studio Command Prompt 


Ardından resimde de görüleceği gibi komut satırına aspnet_regsql yazıp entera basıyoruz.

Ve karışımıza bir vizard çıkıması gerek. Farkındaysanız bende türkçe olarak geldi wizard uni code ile yazıldığından sistemin bölgesel ayarlarına ve office diline bakarak geliyor.
İleri deyip geçiyoruz.

Gelen ekranda ilk seçeneği yani “Uygulama hizmetleri için SQL Server’ı yapılandır” ı seçiyoruz ve ileri diyoruz.

Bu ekranda sunucuyu ve ilgili veritabanını seçiyoruz.
Ben kendi localimdeki sunucuya bağlandığım için nokta (.) yazdım. Veritabanımın ismide “Deneme”
Windows authentication ile bağlanıyorum.

İleri diyoruz.

Bir özet ekranı gelecek eğer yapılandırmadan eminsek ileri diyip son ekrana ulaşıyoruz.

Sona tıklıyoruz.

Veritabanı yapılandırmamız bitmiş oldu. Şimdide web sitemizi yapılandıralım.

Veritabanımıza eklenen tabloları bu şekilde olmalı.

 

 

 

 

 

 

 

 

 

 

 

 

Şimdi de web sitemizin web.config dosyasına gerekli kodları yazmamız gerek. Bu kodlar windows klasörünün altında machine.config dosyasından kalıtımla gelmektedir. Yani machine.config dosyasındaki membership dügümünü olduğu gibi kopyalayıp kendi web.config dosyamıza yapıştırabiliriz.

Ama öncesinde connection stringimizi yazalım. Web.configde connectionstrings düğümünü bulup şu satırı yazalım (Tabi siz data source ve initial catalog kısımlarını kendinize göre düzenleyin)

<connectionStrings>
 <add
name="Conn" connectionString="Data Source=.;Initial
Catalog=Deneme;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
Ardından <system.web> düğümünü bulup şu kodları tagin içine yapıştırıyoruz. Yalnız burada önemli olan şey kodlardaki ConnectionSting ve ApplicationName kısımlarının doğru olması. Ben de bunlar “Conn” ve “WebAplication1”
 

<membership defaultProvider="MembershipProvider" userIsOnlineTimeWindow="5">
 <providers>
 <add
name="MembershipProvider"
 type="System.Web.Security.SqlMembershipProvider, System.Web,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
 connectionStringName="Conn"
 enablePasswordRetrieval="false"
 enablePasswordReset="true"
 requiresQuestionAndAnswer="true"
 applicationName="WebApplication1"
 requiresUniqueEmail="false"
 passwordFormat="Hashed"
 maxInvalidPasswordAttempts="5"
 minRequiredPasswordLength="6"
 minRequiredNonalphanumericCharacters="0"
 passwordAttemptWindow="10"
 passwordStrengthRegularExpression="" />
 </providers>
</membership>
<roleManager enabled="true" defaultProvider="SqlRoleProvider">
 <providers>
 <add
name="SqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="Conn" applicationName="WebApplication1"/>
 </providers>
</roleManager>

Membership taginin içnideki parametreleri başka bir makalede konuşabiliriz. Bunlar ilk etapta optimum değerlerdir.

Kodlarımızı yazdık. Şimdi de ASP.NET Configuration sayfasına gidip kurlumu tamamlayalım.
Bu sayfaya visual studio Solution Explorerdan girebiliriz.

Sarı renkle işaretlediğim butona tıklıyoruz. Ve

Web Sitesi Yönetim Aracıadında bir sayfa açılacak.

Buradan güvenlik tabına geçiyoruz.

İlk önce sitemizde kullancağımız rolleri tanımlamak için “Roller Oluştur veya Yönet“i tıklıyoruz.
Ve istediğimiz rolleri ekliyoruz. Ben Admin ve kullanici adinda 2 tane oluşturdum.


Ve ardından “Güvenliği adım adım yapılandırmak için güvenlik Kurulum Sihirbazı’nı kullanın.” linkini tıklıyoruz.
Hoşgeldiniz ekranını ileri deyip geçiyoruz.

Bu sayfada uygulamamızın ne üzerinde çalışacağını seçiyoruz. Ben localde çalıştıracağım için yereli seçiyorum ve ileri diyorum.

Bu ekranda oluşturduğumuz rolleri klasör bazında yetkilendiriyoruz. Buradaki kritik nokta resimde de görebileceğiniz gibi ilk eklediğiniz rol her zaman sonrakileri ezer. Yani listenin üstündeki rol altındakilerden baskındır her zaman.
Şöyleki;
Resimde görüleceği gibi Admin klasörüne “Admin” rolünde olanlara izin var ama “Kullanici” rolünde olanlara giriş yetkisi yok.

Resimde aşağıdaki listeden de kontrol edebilirsiniz.

Ve ileri dedikten sonra sihirbazı tamamlamak için Son’a tıklıyoruz. Membership kurulumumuzu tamamlamış olduk. Yine bu sayfa üzerinden kullanıcılar roller oluşturabilirsiniz.

ASP.Net login kontrollerinide bir başka makalemizde anlatmak üzere.. Hoşkalın..

Reklamlar

8 comments on “ASP.NET Membership (Üyelik Sistemi) kurulumu

  1. Geri bildirim: ASP.NET Membership Üyelik Sisteminde Üye Detayları « Ahmet Rende

  2. Belirtilen Yöntemleri sırayla izledim ama işe yaramadı . Şu hatayı veriyor
    Ne yapmalıyım …

    System.Web.HttpException (0x80004005): Unable to connect to SQL Server database. —> System.Data.SqlClient.SqlException (0x80131904): Sunucuyla bağlantı kurulurken ağ ile ilgili veya örneğe özel bir hata oluştu. Sunucu bulunamadı veya sunucuya erişilemiyor. Örnek adının doğru olduğunu ve SQL Server’ın uzak bağlantılara izin verdiğini doğrulayın. (provider: Named Pipes Provider, error: 40 – SQL Server için bağlantı açılamadı) —> System.ComponentModel.Win32Exception (0x80004005): Sistem belirtilen dosyayı bulamıyor
    konum: System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
    konum: System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
    konum: System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover)
    konum: System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)
    konum: System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
    konum: System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
    konum: System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions)
    konum: System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
    konum: System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
    konum: System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnectionOptions userOptions)
    konum: System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnectionOptions userOptions)
    konum: System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
    konum: System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
    konum: System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
    konum: System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
    konum: System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
    konum: System.Data.SqlClient.SqlConnection.Open()
    konum: System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString)
    ClientConnectionId:00000000-0000-0000-0000-000000000000
    konum: System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString)
    konum: System.Web.Management.SqlServices.SetupApplicationServices(String server, String user, String password, Boolean trusted, String connectionString, String database, String dbFileName, SqlFeatures features, Boolean install)
    konum: System.Web.Management.ConfirmPanel.Execute()

  3. Hosta Atamamak:
    Ahmet Hocam Dediğiniz Gibi Üyelik Veri Tabanını Kurdum Ama Bunu Godady deiki hosting hesabıma atamadım İnternette Araştırdım Generate Script Oluşturma Yönetimini ALdıgım Kodu hosttaki query analyzer sayfasına yapıştırıp excute ettim ” CREATE DATABASE permission denied in database ‘master’.”
    hatası verdi Ne Yapmalıyım.

    • Merhaba,
      Sizin orada zaten bir veritabanınız vardır. yeni yaratamamanız normal. Create Database scriptini üretmeden sorgunuzu çalıştırmalısınız. kolay gelsin.

  4. Merhaba , MemberShip kurulumunu Access DB de yapabilir miyiz ? Normalde SQL Server ile kullanıyorum ama çalıştığım firma için bir proje hazırlayacağım SQL server yetkisi vermiyorlar.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s