Programlarda Kullanıcı Giriş Sistemi Tasarımı ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
FXERKAN
Üye
Mesajlar: 178
Kayıt: 26 Tem 2003 11:06
Konum: Sivas - Konya
İletişim:

Programlarda Kullanıcı Giriş Sistemi Tasarımı ?

Mesaj gönderen FXERKAN »

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.
[ F X E R K A N © - E r k a n Ç İ F T Ç İ ]
turkcanfidan
Üye
Mesajlar: 380
Kayıt: 31 Eki 2005 03:26

Mesaj gönderen turkcanfidan »

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.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

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.
Cevapla