Beispiel #1
0
        private string GetAuthorizationToken(string username, string hash, string address, string clientId)
        {
            Random rand = new Random((int)(DateTime.Now.Ticks % Int32.MaxValue));
            DateTime expiryTime = DateTime.Now.Add(new TimeSpan(0, 0, 0, EXPIRY_SECONDS));
            string expiryTimeStr = String.Format("{0:X4}{1:X2}{2:X2}{3:X2}{4:X2}{5:X2}{6:X2}",
                                          expiryTime.Year, expiryTime.Month, expiryTime.Day,
                                          expiryTime.Hour, expiryTime.Minute, expiryTime.Second, rand.Next(1000));

            var token = new Hash().GetAuthorizationHash(username, hash + expiryTimeStr + address.ToString());
            Repository.SaveAuthorizationInfo(username, token, expiryTime, address, clientId);

            return token;
        }
Beispiel #2
0
        public void Should_be_possible_generate_hash_from_username_and_password()
        {
            var fakeUser = "******";
            var fakePassword = "******";
            string fakeToken = "5B7A297A4F583FA23C5C71CE8104377B30C3DA57";

            var token = new Hash().GetAuthorizationHash(fakeUser, fakePassword);
            Assert.IsNotNull(token);
            Assert.AreEqual(fakeToken, token);
        }
Beispiel #3
0
        public string Login(string username, string password, string clientId)
        {
            if (username == null || password == null || users == null)
            {
                return null;
            }

            var hash = new Hash().GetAuthorizationHash(username, password);
            var userRecord = users[username];

            if ((userRecord == null) || (userRecord.Hash != hash))
            {
                return null;
            }
            else
            {
                return GetAuthorizationToken(username, hash, GetAddress(), clientId);
            }
        }