merhaba.
geliştirmekte olduğumuz bir proje için kullanıcı giriş sistemi tasarımına ihtiyacımız. bunun için şu şekilde iki seçeneğimiz var ama bunlardan hangisini tam olarak nasıl kullanacağımızı çözemedim.
1.Yöntem : Programı kullanacak her kullanıcı için Sql serverda bir user oluşturmak.
bunu neden yapıyorum(çünkü çoğu tablomuzda PERSONEL_ID ve OLUSTURMA_TARIHI gibi alanlar var ve bunlara default değerler atadım. PERSONEL_ID için suser_id(suser_sname()) ve OLUSTURMA_TARIHI içinde GetDate() yazdım. böylelikle bu alanları elle doldurma sorunundan kurtulmuş oldum)
2.Yöntem : Veritabanında kendim bir KULLANICI tablosu oluşturmak ve kullanıcı bilgileri burada tutarak tablolara yeni bir kayıt ekleneceği zaman PERSONEL_ID ve OLUSTURMA_TARIHI alanlarını elle doldurtmak. Ama bu yöntemdede şöyle bir sorunum var çünkü yeni bir kayıt eklendiğinde bu bilgileri sürekli olarak ben göndertmek zorunda kalacağım ve ayrıca tablodan bir kayıt silindiğinde veya kayıt değiştirildiğinde bu işlemide kimin yaptığının bilgisinide tabloda tutmayı düşündüğüm için bu yöntem pek uygun gelmiyor.
Bunlar için trigger kullanmayı düşünüyorum ve bu nedenle SQL serverı kullanan kullanıcının bilgisini o anda trigger tarafından bilinmesi gerekli. buda 1.yöntemin daha mantıklı olduğunu ortaya çıkarıyor.
Ancak bunun daha farklı bir uygulaması var mı acaba? yada ben bu konu hakkında daha detaylı bilgiye nerden ulaşabilirim. yani ne olarak arama yapacağımı tam olarak bilemiyorum.
Özellikle büyük projelerde bu tip işlerle uğraşmış abilerimin fikirlerini ve tecrübelerini ve konu hakkındaki düşüncelerini benimle paylaşmasını istiyorum. bu uzun soruyu okuduğunuz içinde çok teşekkür ederim.
Programlarda Kullanıcı Giriş Sistemi Tasarımı ?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Programlarda Kullanıcı Giriş Sistemi Tasarımı ?
[ F X E R K A N © - E r k a n Ç İ F T Ç İ ]
-
- Üye
- Mesajlar: 380
- Kayıt: 31 Eki 2005 03:26
USERID otomatik artan integer olmalı. Kullanıcının kişisel bilgileri, şifresi, şifreyi unutma sorusu ve cevabı, son girdiği 5-6 şifreyi tutan bir user tablosu yaratılabilir. (Ben bu şekilde yapıyorum). USERID yi kullanıcının görmesine gerek yok, asıl USERNAME diye bir alan daha olursa bu NickName gibi şifre girişinde falan kullanılır. USERNAME ve PASSWORD alanını kullanıcı giriş kontrolü yaptıktan sonra Parola Değiştirme tarihi gibi bir sahadan parolanın geçerlilik süresinide ayarlayabilirsin. Şifre giriş ekranında 'Şifre değiştir', 'Şifreyi Unuttum' gibi düğmelerle bilgi işlemi hiç arattırmayacak sistemi kurmalısın. Güvenlik açısından şifre değiştirme ekranında son girdiği şifreleri tekrar vermesinide engelleyebilirsin. Bu sistemi kurduktan sonra kullanıcılar yeni kullanıcı düğmesine tıklayıp bilgileri dolduracak ve bilgi işlemin kullanıcıyı aktive etmesini bekleyecek. Bunuda aynı tabloda AKTIF = True yaparak kontrol edebilirsin. AKTIF = False yaptığın zamanda kullanıcıyı silmiş olursun.
En son turkcanfidan tarafından 14 Şub 2006 10:05 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Biz de bu tip bilgiler tutuyoruz ve birinci yöntemi hiç kullanmadık. Çünkü programını nekadar dinamik hazırlarsan sonradan kullanacak kişilere okadar kolaylık olur. Ama sen ikinci yönteme göre işlerini yaparsan programının kullanımında tüm istediğin şeyler çalışabilir her durumda.
Yazmak istediğin PERSONEL_ID ni kullanıcı girişi esnasında projende genel bir değişkende veya oluşturduğun bir classda tutup tablolarına yazma işlemi yaptığın sırada bunu ve OLUSTURMA_TARIHI ni de yazarak tüm satırlarda bu bilgileri tutarsın.
Kullanıcı tablonda kullanıcının silinmesine izin vermez sadece aktiflik diye bir alan koyarak kullanıcıyı silmen gereken durumda aktifliğini 0 yaparsın ki daha önce yapılmış işlemlerle veri bağlantısı kopmasın.
Triggerda işlem yaptığın esnada da sildiğin satırın PERSONEL_ID sine ulaşabileceğin için kimin sildiği bilgisini alıp istediğin yere bunu kaydedebilirsin.
Kolay gelsin.
Yazmak istediğin PERSONEL_ID ni kullanıcı girişi esnasında projende genel bir değişkende veya oluşturduğun bir classda tutup tablolarına yazma işlemi yaptığın sırada bunu ve OLUSTURMA_TARIHI ni de yazarak tüm satırlarda bu bilgileri tutarsın.
Kullanıcı tablonda kullanıcının silinmesine izin vermez sadece aktiflik diye bir alan koyarak kullanıcıyı silmen gereken durumda aktifliğini 0 yaparsın ki daha önce yapılmış işlemlerle veri bağlantısı kopmasın.
Triggerda işlem yaptığın esnada da sildiğin satırın PERSONEL_ID sine ulaşabileceğin için kimin sildiği bilgisini alıp istediğin yere bunu kaydedebilirsin.
Kolay gelsin.