Asp.Net Mvc Login(Yardım)
-
asp.net mvc 4 ile bir proje yapıyorum fakat login olayını halledemedim.Üye olabiliyorum fakat logine kafam bir türlü yatmadı yardım edebilcek varsa özelden bir mesaj atabilirmi.database veri ekleme,silme,düzenleme yapabiliyorum
-
selam,
en basitinden şöyle yapabilirsin.. (db yapını bilmiyorum o yüzden en temel bir şey üzerinden gidiyorum)
user isimli bir tablon olsun ve orada userId, username, password, createdDate, isActivated,isEnabled, activationCode gibi alanlar olsun.
userId : int
username,password,activationCode : varchar
createdDate: datetime
isActivated,isEnabled : boolean
türünden olsun.
üye yaratılırken isActivated değeri false, isEnabled değeri true olsun.
isActivated, üye olduktan sonra üyenin mailine activationCode göndermen gerekiyor, üye bu linke tıkladığında o zaman isActivated ı true yaparsın..
maile şöyle bir link gönderebilirsin
siteadi.com/activation?username=XXactivationCode=12345
şimdi bunun sorgusu da şöyle olabilir
select count(*) from user where username='gelen user name' and activateionCode ='gelen activation code'
buradan 0 gelirse kod ve username eşlenmediği için kullanıcıya hata verdirirsin. Eğer 1 dönerse o zaman sql updatei le isActivated'i true yaparsın böylece kullanıcı aktif olmuş olur.
Login olayına gelirsek;
burada birden fazla kontrol yapacaksın. o yüzden kullanıcıyı çekmen gerekiyor.
Select * from where username ='loginden gelen username' and password='loginden gelen password'
eğer buradaki sonuç null ise, kullanıcı adı ve şifre eşleşmediği için hata verirdirirsin..
Eğer null değil ise o zaman doğru bilgileri girmiş demektir. Ancak burada 2 kontrol daha yapman lazım..
Gelen verilerden isActivate e bak, false ise, kullanıcı mail ile aktif etmemiştir, o yüzden o kullanıcıya tekrar aktivasyonu hatırlat..
Eğer isActivate true ise o zaman isEnabled a bakacaksın. O da true ise o zaman sorunsuz login olmuş demektir. Eğer isEnabled false ise üye banlanmış demektir, o kişiye böyle bir uyarı verebilirsin.
Bunu bir alışkanlık haline getir, gerek ürün olsun gerek şahıslar olsun, gerek roller, kategoriler v.s. olsun hepsine isEnabled alanın olsun, böylece göstermek istemediğini direk false yaparak kolayca eleyebilirsin. User içinde isEnabled false yaparsan siteden atılmış anlamına gelir.
Bu işi daha profesyonel şekilde yapabilirsin, mesela salting (tuzlama) denilen bir yol ile şifreyi şifreli kaydedebilirsin. Böylece db hacklense bile şifreler belli olmayacaktır. :)
örnek : https://www.youtube.com/watch?v=0dgTf9TUDHU
Son olarak direk sql mi kullanıyorsun bilmiyorum ama Entity Framework gibi bir araç kullanarak daha kolay şekilde halledebilirsin, hele generic class kullanarak, tek bir helper ile tüm tabloların için kullanabilirsin kod tekrarı yapmadan..
-
Hocam ilk önce cevap için teşekkür ederim benim sorunum şurda başlıyor.birde sql kullanıyorum.Ben bir kullanıcıyı üye kaydı yapıyorum.Burdan sonrası yok bende Login sayfası yaptım bir tane kullanıcı burda kullancıadı ve şifresini giriyo giriş yap dediğimde o buton hiç bir işe yaramıyo bağlantıda sorunum var gibi geliyo bana bu asp.net birde çok karışık controller ile kontro ettirmem lazım ama tam olarak nasıll yapılcagını bilmiyorum bir başka sorunumda kullanıcı giriş yaptıkdan sonra yukarda layout da kullanıcı ismi ve login yerine log out gelmesi burda tıkandım burda controlller nasıl kullancam bir fikrim yok.
-
mvc, asp.net webforms a göre farklıdır hocam, team yollarsan özelden bakalım biraz
-
yolladım hocam