This is directly related to how to generate a unique token which expires after 24 hours?
What I am attempting to do is embed the following:
- A Page Number (0 through 6)
- Current Date/Time Stamp in UTC Format
- and A Unique GUID
The code I have so far is this:
private string GenerateToken(Int32 pageNumber)
{
byte[] currentTimeStamp = BitConverter.GetBytes(DateTime.UtcNow.ToBinary());
byte[] key = Guid.NewGuid().ToByteArray();
byte[] newPageNumber = BitConverter.GetBytes(pageNumber);
string token = Convert.ToBase64String(newPageNumber.Concat(currentTimeStamp).Concat(key).ToArray());
return token;
}
private tokenClass TokenAuthenticates(string token)
{
byte[] data = Convert.FromBase64String(token);
tokenClass _token = new tokenClass()
{
PageNumber = 0,
TokenDateTimeStamp = DateTime.FromBinary(BitConverter.ToInt64(data, 1)),
TokenKey = new Guid(),
Validates = (DateTime.FromBinary(BitConverter.ToInt64(data, 1)) < DateTime.UtcNow.AddHours(-2))
};
return _token;
}
The page and Guid parameters in the decoder are not yet figured out yet so they are basically dummies.
What do I need to do to make this work?