为网站注册用户并发送带有用户名和密码的链接的最佳方式是什么?
管理员将通过输入用户名而不是密码来创建用户
密码需要生成并作为哈希文本存储在数据库中,并将其发送到用户的电子邮件中,并带有链接和用户名。(在这里我不能将哈希文本反转回纯文本并通过电子邮件发送):(
我怎样才能做到这一点?我在数据库中以散列格式存储了一些随机文本。不知道每当管理员创建新用户时我将如何通过电子邮件发送给用户。
任何想法/文章或建议?
为网站注册用户并发送带有用户名和密码的链接的最佳方式是什么?
管理员将通过输入用户名而不是密码来创建用户
密码需要生成并作为哈希文本存储在数据库中,并将其发送到用户的电子邮件中,并带有链接和用户名。(在这里我不能将哈希文本反转回纯文本并通过电子邮件发送):(
我怎样才能做到这一点?我在数据库中以散列格式存储了一些随机文本。不知道每当管理员创建新用户时我将如何通过电子邮件发送给用户。
任何想法/文章或建议?
就我个人而言,我不喜欢以纯文本形式发送密码。但是我可以理解为什么有时需要它。例如,管理员为用户创建帐户。
发送带有凭据的初始电子邮件
当用户在网站上注册时。将电子邮件地址和随机生成的密码(散列)保存到数据库中。成功插入后,使用原始随机生成的密码(不是散列密码)向用户发送电子邮件。
如果电子邮件失败
如果电子邮件无法发送或到达收件人,或者他们将其删除,那么他们就丢失了密码。您的网站将需要一个忘记密码部分,用户可以在其中请求重置密码。执行此操作时,您的脚本将创建另一个随机生成的密码,将散列版本存储到数据库并将未散列版本发送给用户。
将重置密码与主帐户详细信息分开是个好主意,以防万一不是所有者尝试重置它。否则,当他们登录时,他们的已知密码将不再有效,因为重置密码会覆盖它。
登录时更改密码
在这两种情况下,都应该强制用户在登录时更改密码。
其他选项
如果您愿意,您可以将时间戳与帐户凭据一起存储,以了解他们必须重置或首次登录的时间。如果带有电子邮件凭据的登录请求在该时间内,则您允许他们访问。如果不是,那么您说对不起凭据已过期并允许它们再次重置。
您可以authentication
用于管理员登录并授予他创建新登录的权限。
你可以authentication and authorizations
在这里获得帮助>>
http://msdn.microsoft.com/en-IN/library/eeyk640h%28v=vs.100%29.aspx
和
http://www.codeproject.com/Articles/98950/ASP-NET-authentication-and-authorization
您可以简单地使用此功能发送电子邮件>>
public int sendMail(string to,string cc,string bcc,string subject,string body)
{
try
{
SmtpMail.SmtpServer="your_server_address";
MailMessage msg = new MailMessage();
msg.From = "your_email_id";
msg.To = to;
msg.Cc = cc;
msg.Bcc = bcc;
msg.Subject = subject;
msg.Body = body;
SmtpMail.Send(msg);
return(1);
}
catch
{
return (0);
}
}
在发送电子邮件按钮上单击>>
private void Button1_ServerClick(object sender, System.EventArgs e)
{
String to = “to_email_id”;
String cc = “cc_email_id”;
String bcc = “bcc_email_id”;
String subject = “your subject goes here”;
String body = “your body text goes here”;
int status = sendMail(to,cc,bcc,subject,body);
if(status == 1)
Response.Write("your mail has been sent successfully");
else
Response.Write("sorry! your mail could not be sent”);
}
希望它有帮助。