SMF Forum Login İşlemi Mantığı
Merhaba Arkadaşlar,
Bir kere yaptığım bir işte müşterinin SMF (Simple Machines Forum) tabanlı bir forum sitesi vardı. Burada kayıtlı olan kullanıcıların bizim yaptığımız Asp.Net sitesinde de aynı kullanıcı bilgileriyle login olabilmesini istedi. Bende SMF login mantığını buraya yazmak istedim. Belki birilerine lazım olur.
SMF forum sistemine kullanıcı adı ve şifre ile giriş yapılıyor. Giriş yapmak için bu sistemin üye bilgilerinin tutulduğu smf_members tablosunu kullanacağız. Bu tabloda member_name kullanıcı adınının, passwd ise kullanıcı şifresinin tutulduğu alanlar. Ama doğrudan kullanıcı adı ve şifreyi bu alanlar ile eşleştirip kullanamıyoruz. Önce SMF‘de tutulduğu şekliyle şifreyi elde etmemiz gerekiyor.
Şifre, küçük harfle kullanıcı adının string olarak şifre ile birleştirilmesi ve elde edilen değerin SHA1‘e dönüştürülmesiyle elde ediliyor. SHA1 için aşağıdaki kodu kullanabiliriz.
public static string GetSHA1(string text) { SHA1CryptoServiceProvider sh = new SHA1CryptoServiceProvider(); sh.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text)); byte[] re = sh.Hash; StringBuilder sb = new StringBuilder(); foreach (byte b in re) { sb.Append(b.ToString("x2")); } return sb.ToString(); }
Bu metodu da aşağıdaki kod gibi çağırıp şifreyi kullanabileceğimiz şekilde elde edebiliriz.
string veri = username.ToLower() + pass; string password = GetSHA1(veri);
Artık elde ettiğimiz username ve password ilgilerini smf_members tablosunda member_name ve passwd
ile eşleştirip kullanabiliriz.
En son veritabanı üzerinden eşleştirirken username değerini ToLower() yapmayacağız. Bu detaya dikkat edin lütfen.
Son yorumlar