ASP.Net MVC ile uygulama geliştiriyorsunuz. Bazı sayfaların şifre ile korunmasını istiyorsunuz ama üyelik sistemi, kullanıcı rolleri gibi komplike bir uygulama değil, geliştirdiğiniz. Sadece bazı sayfaların bir ya da bir kaç kişi tarafından görüntülenebilir olmasını arzu ediyorsunuz.
Bu durumda herhangi bir veritabanı işlemine ihtiyaç duymazsınız. web.config’de kullanıcıları tanımlayıp uygulamada gerekli ayarları yapmak yeterli.
web.config kullanıcıları tanımlayalım.
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880">
<credentials passwordFormat="Clear">
<user name="kullanici1" password="sifre"/>
<user name="kullanici2" password="sifre"/>
</credentials>
</forms>
</authentication>
AccountModel.cs dosyasında kullanıcının doğrulandığı bölümde membership api’si ile değil de web.config ile bunu çözeceğimizi belirtelim.
public bool ValidateUser(string userName, string password)
{
if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName");
if (String.IsNullOrEmpty(password)) throw new ArgumentException("Value cannot be null or empty.", "password");
//return _provider.ValidateUser(userName, password);
return FormsAuthentication.Authenticate(userName, password);
}
Artık istediğimiz Action Methodlara [Authorize] attribute ekleyerek onları şifre korumalı sayfalar haline getirebilir. Mesela örnek mvc projesinde About methoduna yazalım.
[Authorize]
public ActionResult About()
{
return View();
}
Bitti.
Yukarıdaki senaryo VS2008 SP1 ve ASP.Net MVC2 sürümü ile denenmiştir.
22 Kasım Pazar günü saat 12.00'de Boğaziçi Üniversitesi Bilişim Kulübü ve Sanal Kurs ortaklığında düzenlenecek olan Bilgi Patlaması Seminerleri'nde, C#Türk.net olarak biz de yer alacağız.
Seminerde ASP.Net MVC sunumu yapacağım.
sanalkurs.net üzerinden kayıt yaptırmayı unutmayın.
22 Kasım’da görüşürüz.

Bir SQL veritabanını SQL Server 2005 üzerinde restore yaptıktan database diagram oluşturmak istersek bazen aşağıdaki gibi bir hata ile karşılaşırız.
Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects.
Bu durumda yapılabilecek en pratik çözümlerden bir tanesi aşağıda.
New Query penceresinde aşağıdaki prosedürü çalıştırdığınız zaman sorun çözülecektir. veritabani-ismi kendi veritabanınıza göre düzenlenmelidir. Kullanıcı olarak da sa seçili. İsterseniz başka bir kullanıcı için de değiştirip çalıştırabilirsiniz.
EXEC sp_dbcmptlevel 'veritabani-ismi', '90';
go
ALTER AUTHORIZATION ON DATABASE::veritabani-ismi TO "sa"
go
use [veritabani-ismi]
go
EXECUTE AS USER = N'dbo' REVERT
go