我是.NET编程的初学者,所以请帮助我们
我的问题:当用户订阅该网站时,这些值将被添加到Sql DB中,目前在存储的表数据中,订阅时会收到“YES”状态消息。
但是,这里开始提出问题 - 当他们订阅该网站时,电子邮件必须通过验证链接转到订阅者的电子邮件地址。
当用户点击此验证链接时,直接转到网站地址。
然后在SQL DB中同时将状态消息更改为状态“YES”,即
已存储为“否”。
请建议我一些网站/链接,其中包含此问题的完整代码或任何有助于我找到解决方案的内容。
答案 0 :(得分:3)
这是使用用户注册的每个服务器端项目中的常见任务。
答案 1 :(得分:1)
您的问题非常广泛,可能值得您查看asp.net会员系统,可在此处找到演练 - http://msdn.microsoft.com/en-us/library/879kf95c.aspx
至于会员电子邮件方案,它是关于'4来自Rolla的网站'会员系统的大量文章的一部分 - http://www.4guysfromrolla.com/articles/062508-1.aspx
答案 2 :(得分:1)
您需要以某些恶意用户无法预测的方式构建验证链接,并决定致电您的网站以非法方式订阅或取消订阅您的用户。
例如,您身体的某个部位可以:
<a href="http://yoursite.com/unsubscribe.aspx?id=userId&token={some-guid-value-stored-in-your-db} > Click here to unsubscribe </a>
你可以像这样发送电子邮件:
private void SendEmail()
{
string to = "jane@contoso.com";
string from = "ben@contoso.com";
MailMessage message = new MailMessage(from, to);
message.Subject = "Using the new SMTP client.";
message.Body = @"<a href="http://yoursite.com/unsubscribe.aspx?id=userId&token={some-guid-value-stored-in-your-db} > Click here to unsubscribe </a>";
message.IsBodyHtml=true; //VERY IMPORTANT
SmtpClient client = new SmtpClient(server);
// Credentials are necessary if the server requires the client
// to authenticate before it will send e-mail on the client's behalf.
client.UseDefaultCredentials = true;
try {
client.Send(message);
}
catch (Exception ex) {
Console.WriteLine("Exception caught in CreateTestMessage2(): {0}",
ex.ToString() );
}
}
在unsubscribe.aspx
上你会同时读取userid和guid值:
Page_Load
{
string userid = Request.QueryString["id"];
string guid = Request.QueryString["token"];
//Query your database, find user matching this id and token chaning YES for NO to
//unsbscribe
}
答案 3 :(得分:0)
请查看有关Implement the Registration Verification Pattern的视频,以便您可以使用类似方法完成任务