Лучшее, что вы можете сделать - это зашифровать или зашифровать адрес электронной почты или несколько «включить» его в свой токен.
Таким образом, ваша ссылка может выглядеть так:
http://mysite.com/VerifyEmail?token=12341234480348204023
Или:
http://mysite.com/VerifyEmail?emailcode=A124E4F325O425FE5F4J6636K66L&token=12341234
Если вы следуете по хеш-маршруту, помните, что Base64 также использует +
в качестве допустимого символа при кодировании. Обычной практикой является замена на @ или что-то еще:
var emailcode = Convert.ToBase64String(GetHashBytes(email)).Replace('+', '@');
Затем при выполнении подтверждения:
var emailcodebytes = Convert.FromBase64String(Request["code"].Replace('@', '+'));