コード例 #1
0
        protected bool ŞifreUyuşturması(KullanıcıŞifre kullanıcıŞifre, string girilenŞifre)
        {
            if (kullanıcıŞifre == null || string.IsNullOrEmpty(girilenŞifre))
            {
                return(false);
            }

            var kaydedilenŞifre = string.Empty;

            switch (kullanıcıŞifre.ŞifreFormatı)
            {
            case ŞifreFormatı.Temiz:
                kaydedilenŞifre = girilenŞifre;
                break;

            case ŞifreFormatı.Encrypted:
                kaydedilenŞifre = _şifrelemeServisi.TextŞifrele(girilenŞifre);
                break;

            case ŞifreFormatı.Hashed:
                kaydedilenŞifre = _şifrelemeServisi.ŞifreHashOluştur(girilenŞifre, kullanıcıŞifre.ŞifreSalt, _kullanıcıAyarları.HashŞifreFormatı);
                break;
            }

            return(kullanıcıŞifre.Şifre.Equals(kaydedilenŞifre));
        }
コード例 #2
0
        public virtual void KullanıcıŞifresiGüncelle(KullanıcıŞifre kullanıcıŞifresi)
        {
            if (kullanıcıŞifresi == null)
            {
                throw new ArgumentNullException("kullanıcıŞifresi");
            }

            _kulanıcıŞifreDepo.Güncelle(kullanıcıŞifresi);

            //olay bildirimi
            _olayYayınlayıcı.OlayGüncellendi(kullanıcıŞifresi);
        }
コード例 #3
0
        public virtual KullanıcıKayıtSonuçları KullanıcıKaydet(KullanıcıKayıtİsteği istek)
        {
            if (istek == null)
            {
                throw new ArgumentNullException("istek");
            }

            if (istek.Kullanıcı == null)
            {
                throw new ArgumentException("Mevcut kullanıcı yüklenemedi");
            }

            var sonuç = new KullanıcıKayıtSonuçları();

            if (istek.Kullanıcı.AramaMotoruHesabı())
            {
                sonuç.HataEkle("Arama motoru kaydedilemedi");
                return(sonuç);
            }
            if (istek.Kullanıcı.ArkaPlanGöreviHesabı())
            {
                sonuç.HataEkle("Arka plan görevi hesabı kaydedilemedi");
                return(sonuç);
            }
            if (istek.Kullanıcı.IsRegistered())
            {
                sonuç.HataEkle("Mevcut kullanıcı zaten kayıtlı");
                return(sonuç);
            }
            if (String.IsNullOrEmpty(istek.Email))
            {
                sonuç.HataEkle("E-mail sağlanamadı");
                return(sonuç);
            }
            if (!GenelYardımcı.GeçerliMail(istek.Email))
            {
                sonuç.HataEkle("Hatalı E-mail");
                return(sonuç);
            }
            if (String.IsNullOrWhiteSpace(istek.Şifre))
            {
                sonuç.HataEkle("Şifre sağlanamadı");
                return(sonuç);
            }
            if (_kullanıcıAyarları.KullanıcıAdlarıEtkin)
            {
                if (String.IsNullOrEmpty(istek.KullanıcıAdı))
                {
                    sonuç.HataEkle("Kullanıcı adı sağlanamadı");
                    return(sonuç);
                }
            }

            //benzersiz kullanıcıyı doğrulama
            if (_kullanıcıServisi.KullanıcıAlEmail(istek.Email) != null)
            {
                sonuç.HataEkle("E-Mail adresi zaten mevcut");
                return(sonuç);
            }
            if (_kullanıcıAyarları.KullanıcıAdlarıEtkin)
            {
                if (_kullanıcıServisi.KullanıcıAlKullanıcıAdı(istek.KullanıcıAdı) != null)
                {
                    sonuç.HataEkle("Kullanıcı adı zaten mevcut");
                    return(sonuç);
                }
            }

            //buradan sonra istek doğrulandı
            istek.Kullanıcı.KullanıcıAdı = istek.KullanıcıAdı;
            istek.Kullanıcı.Email        = istek.Email;

            var kullanıcıŞifre = new KullanıcıŞifre
            {
                Kullanıcı         = istek.Kullanıcı,
                ŞifreFormatı      = istek.ŞifreFormatı,
                OluşturulmaTarihi = DateTime.UtcNow
            };

            switch (istek.ŞifreFormatı)
            {
            case ŞifreFormatı.Temiz:
                kullanıcıŞifre.Şifre = istek.Şifre;
                break;

            case ŞifreFormatı.Encrypted:
                kullanıcıŞifre.Şifre = _şifrelemeServisi.TextŞifrele(istek.Şifre);
                break;

            case ŞifreFormatı.Hashed:
            {
                var saltKey = _şifrelemeServisi.SaltAnahtarıOluştur(5);
                kullanıcıŞifre.ŞifreSalt = saltKey;
                kullanıcıŞifre.Şifre     = _şifrelemeServisi.ŞifreHashOluştur(istek.Şifre, saltKey, _kullanıcıAyarları.HashŞifreFormatı);
            }
            break;
            }
            _kullanıcıServisi.KullanıcıŞifresiEkle(kullanıcıŞifre);

            istek.Kullanıcı.Aktif = istek.Onaylandı;

            //kayıtlı rol ekle
            var kayıtlıRol = _kullanıcıServisi.KullanıcıRolüAlSistemAdı(SistemKullanıcıRolAdları.Kayıtlı);

            if (kayıtlıRol == null)
            {
                throw new TSHata("Kayıtlı rolü eklenemedi");
            }
            istek.Kullanıcı.KullanıcıRolleri.Add(kayıtlıRol);
            //ziyaretçi rolünü sil
            var ziyaretçiRolü = istek.Kullanıcı.KullanıcıRolleri.FirstOrDefault(cr => cr.SistemAdı == SistemKullanıcıRolAdları.Ziyaretçi);

            if (ziyaretçiRolü != null)
            {
                istek.Kullanıcı.KullanıcıRolleri.Remove(ziyaretçiRolü);
            }

            //Add reward points for kullanıcı registration (if enabled)
            //
            //

            _kullanıcıServisi.KullanıcıGüncelle(istek.Kullanıcı);

            //publish event
            _olayYayınlayıcı.Yayınla(new KullanıcıŞifreDeğiştirdiOlayı(kullanıcıŞifre));

            return(sonuç);
        }
コード例 #4
0
        public virtual ŞifreDeğiştirmeSonuçları ŞifreDeğiştir(ŞifreDeğiştirmeİsteği istek)
        {
            if (istek == null)
            {
                throw new ArgumentNullException("istek");
            }

            var sonuç = new ŞifreDeğiştirmeSonuçları();

            if (String.IsNullOrWhiteSpace(istek.Email))
            {
                sonuç.HataEkle("E-Mail sağlanmadı");
                return(sonuç);
            }
            if (String.IsNullOrWhiteSpace(istek.YeniŞifre))
            {
                sonuç.HataEkle("Şifre sağlanmadı");
                return(sonuç);
            }

            var kullanıcı = _kullanıcıServisi.KullanıcıAlEmail(istek.Email);

            if (kullanıcı == null)
            {
                sonuç.HataEkle("E-Mail bulunamadı");
                return(sonuç);
            }

            if (istek.İsteğiDoğrula)
            {
                //istek geçerli değilse
                if (!ŞifreUyuşturması(_kullanıcıServisi.MevcutŞifreAl(kullanıcı.Id), istek.EskiŞifre))
                {
                    sonuç.HataEkle("Şifreler uyuşmuyor");
                    return(sonuç);
                }
            }

            /*
             * //kopyalama kontrol et
             * if (_kullanıcıAyarları.YinelenmemişŞifreSayısı > 0)
             * {
             *  //get some of previous passwords
             *  var öncekiŞifre = _kullanıcıServisi.KullanıcıŞifreleriAl(kullanıcı.Id, geriDönenŞifreler: _kullanıcıAyarları.YinelenmemişŞifreSayısı);
             *
             *  var yeniŞifreÖncekiİleEşleşiyor = öncekiŞifre.Any(password => ŞifreUyuşturması(password, istek.YeniŞifre));
             *  if (yeniŞifreÖncekiİleEşleşiyor)
             *  {
             *      sonuç.HataEkle("Yeni şifre bir önceki ile aynı");
             *      return sonuç;
             *  }
             * }
             */
            //buradan sonra istek doğrulandı

            var kullanıcıŞifre = new KullanıcıŞifre
            {
                Kullanıcı         = kullanıcı,
                ŞifreFormatı      = istek.YeniŞifreFormatı,
                OluşturulmaTarihi = DateTime.UtcNow
            };

            switch (istek.YeniŞifreFormatı)
            {
            case ŞifreFormatı.Temiz:
                kullanıcıŞifre.Şifre = istek.YeniŞifre;
                break;

            case ŞifreFormatı.Encrypted:
                kullanıcıŞifre.Şifre = _şifrelemeServisi.TextŞifrele(istek.YeniŞifre);
                break;

            case ŞifreFormatı.Hashed:
            {
                var saltKey = _şifrelemeServisi.SaltAnahtarıOluştur(5);
                kullanıcıŞifre.ŞifreSalt = saltKey;
                kullanıcıŞifre.Şifre     = _şifrelemeServisi.ŞifreHashOluştur(istek.YeniŞifre, saltKey, _kullanıcıAyarları.HashŞifreFormatı);
            }
            break;
            }
            _kullanıcıServisi.KullanıcıŞifresiEkle(kullanıcıŞifre);

            //olay yayınla
            _olayYayınlayıcı.Yayınla(new KullanıcıŞifreDeğiştirdiOlayı(kullanıcıŞifre));

            return(sonuç);
        }
コード例 #5
0
ファイル: Olaylar.cs プロジェクト: vourkalakas/Rota-Iznik
 public KullanıcıŞifreDeğiştirdiOlayı(KullanıcıŞifre şifre)
 {
     this.Şifre = şifre;
 }