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; }
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); }
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); } }