Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 注册站点用户并发送电子邮件_C#_Asp.net_Security_Web Applications_Passwords - Fatal编程技术网

C# 注册站点用户并发送电子邮件

C# 注册站点用户并发送电子邮件,c#,asp.net,security,web-applications,passwords,C#,Asp.net,Security,Web Applications,Passwords,为网站注册用户并发送带有用户名和密码的链接的最佳方式是什么 管理员将通过输入用户名而不是密码来创建用户 密码需要生成并作为散列文本存储在数据库中,并将其发送到带有链接和用户名的用户电子邮件中。(在这里,我无法将散列文本还原为纯文本并通过电子邮件发送到):( 我如何做到这一点?我在数据库中以散列格式存储了一些随机文本。不确定在管理员创建新用户时如何向用户发送电子邮件 有什么想法/文章或建议吗?您可以使用身份验证进行管理员登录,并授予他创建新登录的权限 您可以在此处获得有关身份验证和授权的帮助 及

为网站注册用户并发送带有用户名和密码的链接的最佳方式是什么

管理员将通过输入用户名而不是密码来创建用户

密码需要生成并作为散列文本存储在数据库中,并将其发送到带有链接和用户名的用户电子邮件中。(在这里,我无法将散列文本还原为纯文本并通过电子邮件发送到):(

我如何做到这一点?我在数据库中以散列格式存储了一些随机文本。不确定在管理员创建新用户时如何向用户发送电子邮件


有什么想法/文章或建议吗?

您可以使用
身份验证
进行管理员登录,并授予他创建新登录的权限

您可以在此处获得有关身份验证和授权的帮助

您只需使用此功能发送电子邮件>>

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”); 
}
在发送电子邮件按钮上单击>>

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

希望对您有所帮助。

就我个人而言,我不喜欢以纯文本形式发送密码。但是我可以理解为什么有时需要它。例如,管理员为用户创建帐户

发送带有凭据的初始电子邮件

当用户在网站注册时。将电子邮件地址和随机生成的密码(哈希)保存到数据库中。成功插入后,使用原始随机生成的密码(不是哈希密码)将电子邮件发送给用户

如果电子邮件失败

如果电子邮件无法发送或到达收件人,或者他们删除了该电子邮件,则说明他们丢失了密码。您的网站将需要一个遗忘密码部分,用户可以在其中请求重置该部分。执行此操作时,您的脚本将创建另一个随机生成的密码,将哈希版本存储到数据库中,并发送未删除的密码向用户发送电子邮件

最好将重置密码与主帐户详细信息分开,以防不是所有者试图重置密码。否则,当他们登录时,他们的已知密码将不再有效,因为重置密码会覆盖它

登录时更改密码

在这两种情况下,用户在登录时都必须更改密码

其他选项


如果您愿意,您可以将时间戳与帐户凭据一起存储,说明他们必须重置或首次登录的时间。如果带有电子邮件凭据的登录请求在该时间内,则您允许他们访问。如果不在该时间内,则您说抱歉凭据过期,并允许他们再次重置。

哦,我的天哪,我不这么认为你明白我的问题。我知道发送电子邮件和身份验证。我想知道更好的方法,比如使用nonce技术,等等。你需要生成随机密码,将哈希版本存储到数据库中,确保插入成功。然后将原始的未哈希随机密码发送给用户,而你仍然知道是什么是的。@diggersworld听起来不错。当用户登录时,我需要强制他们设置新密码:)@diggersworld,如果电子邮件发送失败会发生什么情况:(我如何再次发送电子邮件?如果失败,那只是其中之一。你的网站应该有一个忘记密码的区域。这将允许用户重置它。基本上,你会用重置功能创建一个新密码,将其发送到注册地址,然后在他们再次登录时要求他们更改。我已经写了完整的答案b。)私奔。