Пример #1
0
 public static void Serialize(ResetPasswordToken token, Stream stream)
 {
     using (BinaryWriter writer = new BinaryWriter(stream))
     {
         writer.Write(token.Username);
         writer.Write(token.ExpiresOn.Ticks);
         writer.Write(token.Random);
     }
 }
Пример #2
0
 public static void Serialize(ResetPasswordToken token, Stream stream)
 {
     using (BinaryWriter writer = new BinaryWriter(stream))
     {
         writer.Write(token.Username);
         writer.Write(token.ExpiresOn.Ticks);
         writer.Write(token.Random);
     }
 }
Пример #3
0
        public static void SendPasswordResetEmail(string firstName, string lastName, string emailAddress, string username)
        {
            DateTime expiresOn = DateTime.UtcNow + Settings.Default.ResetPasswordTokenExpiryInterval;

            long random = Common.Helpers.RandomHelper.RandomLong();

            ResetPasswordToken token = new ResetPasswordToken(username, expiresOn, random);

            string encryptedToken = Convert.ToBase64String(EncryptionHelper.EncryptURL(token.AsBytes()));

            string subject = "Initial Round Password Reset";

            string recipientName = string.Format("{0} {1}", firstName, lastName);

            if (string.IsNullOrWhiteSpace(recipientName))
            {
                recipientName = username;
            }

            string resetUri = string.Format("{0}Account/CompletePasswordReset?Token={1}",
                CloudConfigurationManager.GetSetting("RootURI"),
                HttpUtility.UrlEncode(encryptedToken));

            string body = Interpolate(ResetPasswordTemplate,
                KeyValue.Of("FullName", recipientName),
                KeyValue.Of("ResetURI", resetUri));

            Enqueue(new EmailMessage
            {
                Subject = subject,
                Body = body,
                Recipient = new EmailRecipient
                {
                    EmailAddress = emailAddress,
                    FullName = recipientName
                },
                SendDate = DateTime.UtcNow,
                UseHtml = true
            });
        }