コード例 #1
0
        public bool Register(string username, string password, int clear)
        {
            string hash  = password + "a6s8d";
            var    konto = new DBKonto()
            {
                Login = username, Haslo = md5Hash.GetMD5Hash(hash), Salt = "a6s8d", Clear = clear, Class_Haslo = 1, Class = 1, Class_Login = 1, Class_salt = 1
            };

            ctx.Konto.Add(konto);
            ctx.SaveChanges();
            int?id = ctx.Konto.Where(c => c.Login.Equals(username)).First().ID;
            var kl = new DBKlient()
            {
                Imie = username, Nazwisko = username, Adres = username + " 11", Class_Adres = 1, Class_Imie = 1, Class_Nazwisko = 1, Class = 1, ID_Konto = id
            };

            ctx.Klient.Add(kl);
            DBPracownik p;

            if (clear > 1)
            {
                p = new DBPracownik()
                {
                    Imie = username, Nazwisko = username, Class_Imie = 1, Class_Nazwisko = 1, Class = 1, ID_Konto = id, Data_zaczecia = DateTime.Now, Class_Data_zaczecia = 1, Stanowisko = "Test", Class_Stanowisko = 1
                };
                ctx.Pracownik.Add(p);
            }

            ctx.SaveChanges();
            return(true);
        }
コード例 #2
0
        private Konto RestrictReadKonto(DBKonto account)
        {
            int?clear       = this.konto.Clear;
            var resultKonto = new Konto();

            if (IsRead(account.Class, clear))
            {
                resultKonto.ID    = account.ID;
                resultKonto.Login = IsRead(account.Class_Login, clear) ? account.Login : null;
                resultKonto.Clear = account.Clear;

                return(resultKonto);
            }
            return(null);
        }
コード例 #3
0
        public void LoginTest()
        {
            //Arrange
            string login = "******";
            string haslo = "1234";
            string salt  = "salt";

            var konto1 = new DBKonto()
            {
                Login = "******", Haslo = "12345", Salt = "salt"
            };
            var konto2 = new DBKonto()
            {
                Login = login, Haslo = haslo, Salt = salt
            };
            var kontos = new List <DBKonto>()
            {
                konto1, konto2
            };

            var kontoMock = MockDbSet <DBKonto>(kontos);

            var ctxMock = new Mock <DataBaseModel>();

            ctxMock.Setup(m => m.Konto).Returns(kontoMock.Object);

            var md5Mock = new Mock <MD5Hash>();

            md5Mock.Setup(m => m.VerifyMd5Hash(It.IsAny <String>(), It.IsAny <String>(), It.IsAny <String>())).Returns(false);
            md5Mock.Setup(m => m.VerifyMd5Hash(It.IsAny <String>(), It.IsAny <String>(), haslo)).Returns(true);

            var accesService = new AccessService(ctxMock.Object, md5Mock.Object);

            //Act
            bool success = accesService.Login(login, haslo);
            bool fail    = accesService.Login("Adam3", "12345");
            bool fail2   = accesService.Login("Adam", "123456");

            //Assert
            Assert.IsTrue(success);
            Assert.IsFalse(fail);
            Assert.IsFalse(fail2);
        }
コード例 #4
0
        public bool SetKonto(Konto input, int[] classes, string pass)
        {
            if (this.konto == null)
            {
                return(false);
            }
            string  hash   = pass + "a6s8d";
            DBKonto newKon = new DBKonto()
            {
                Login = input.Login, Haslo = md5Hash.GetMD5Hash(hash), Salt = "a6s8d", Clear = input.Clear, Class_Haslo = classes[1], Class = classes[3], Class_Login = classes[0], Class_salt = classes[2]
            };

            if (Locker <DBKonto> .Lock(newKon, LockWriteKonta))
            {
                ctx.Konto.Add(newKon);
                ctx.SaveChanges();
                return(true);
            }
            return(false);
        }
コード例 #5
0
        public bool Login(string username, string password)
        {
            if (String.IsNullOrEmpty(username) || String.IsNullOrEmpty(password))
            {
                return(false);
            }

            //this.konto = (from ctxKonto in ctx.Konto
            //              where ctxKonto.Login.Equals(username)
            //                    && md5Hash.VerifyMd5Hash(password, ctxKonto.Salt, ctxKonto.Haslo)
            //              select (ctxKonto)).FirstOrDefault();

            foreach (var ctxKonto in ctx.Konto)
            {
                if (ctxKonto.Login.Equals(username) &&
                    md5Hash.VerifyMd5Hash(password, ctxKonto.Salt, ctxKonto.Haslo))
                {
                    this.konto = ctxKonto;
                }
            }

            return(this.konto != null);
        }
コード例 #6
0
        private bool LockWriteKonta(DBKonto input)
        {
            int?clear = this.konto.Clear;

            if (IsWrite(input.Class, clear))
            {
                if (!IsWrite(input.Class_Haslo, clear))
                {
                    return(false);
                }
                if (!IsWrite(input.Class_Login, clear))
                {
                    return(false);
                }
                if (!IsWrite(input.Class_salt, clear))
                {
                    return(false);
                }
                return(true);
            }

            return(false);
        }
コード例 #7
0
        public void GetKlientyTest()
        {
            //Arrange
            string login = "******";
            string haslo = "1234";
            string salt  = "salt";
            int    clear = 4;

            var konto1 = new DBKonto()
            {
                Login = "******", Haslo = "12345", Salt = "salt"
            };
            var konto2 = new DBKonto()
            {
                Login = login, Haslo = haslo, Salt = salt, Clear = clear
            };
            var kontos = new List <DBKonto>()
            {
                konto1, konto2
            };

            var kontoMock = MockDbSet <DBKonto>(kontos);

            var klient1 = new DBKlient()
            {
                Imie = "Adam", Nazwisko = "NazwAdam", Adres = "AdresAdam"
            };
            var klient2 = new DBKlient()
            {
                Imie = "Adam", Nazwisko = "NazwAdam", Adres = "AdresAdam", Class = clear + 1
            };
            var klientos = new List <DBKlient>()
            {
                klient1, klient2
            };

            var klientMock = MockDbSet <DBKlient>(klientos);

            var ctxMock = new Mock <DataBaseModel>();

            ctxMock.Setup(m => m.Konto).Returns(kontoMock.Object);
            ctxMock.Setup(m => m.Klient).Returns(klientMock.Object);

            var md5Mock = new Mock <MD5Hash>();

            md5Mock.Setup(m => m.VerifyMd5Hash(It.IsAny <String>(), It.IsAny <String>(), It.IsAny <String>())).Returns(false);
            md5Mock.Setup(m => m.VerifyMd5Hash(It.IsAny <String>(), It.IsAny <String>(), haslo)).Returns(true);

            var accesService = new AccessService(ctxMock.Object, md5Mock.Object);

            accesService.Login(login, haslo);

            //Act
            List <Klient> result = accesService.GetKlienty();

            //Assert
            Assert.AreEqual(1, result.Count);
            Assert.AreEqual("Adam", result[0].Imie);
            Assert.AreEqual("NazwAdam", result[0].Nazwisko);
            Assert.AreEqual("AdresAdam", result[0].Adres);
        }