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