想知道具体怎么知道用户点击了邮箱中的链接,然后来激活账号的。
有详细代码更好,急用,谢谢!
18 个解决方案
#1
邮箱中的链接,应该是到你的服务器,你自然就知道了。
#2
点击链接,执行某个操作,可能是修改数据库中的某个字段值,就激活了.
#3
对啊,可是我不太明白呢!
#4
链接里带上你需要的值作为参数
#5
这个我做过,邮箱链接中的参数是你需要的,一般是个id或用户名,当然,一定要把参数加密,不然的话,别人会猜测到这个链接,点击链接后,再把这个参数解密,进行一些操作,把这个账户激活
简单代码如下:
邮箱链接为 http://www.xxx.com?username=加密的字符串,点击后
string userName = 解密方法(Request.QueryString("username"));
再把这个账户激活
明白了吧
简单代码如下:
邮箱链接为 http://www.xxx.com?username=加密的字符串,点击后
string userName = 解密方法(Request.QueryString("username"));
再把这个账户激活
明白了吧
#6
用户表。。。加一个是否激活字段IsActivation(0、未激活,1、己激活 默认为0)。。。
一个验证码自段。。。flag
注册后。。。用MD5方式加密一个字符串(比如随机出来一个6位的数字),存到flag字段中
发送邮件到用户注册用的邮箱。。发送代码如下。。
以上方参数url可以带上参数(用户ID和激活生成的md5加密的一个字符串flag)
跳转页再通过这两个参数判断。。是否存在。。如果存在。。只要flag字段相同。。就把IsActivation改为1.。。。激活成功
一个验证码自段。。。flag
注册后。。。用MD5方式加密一个字符串(比如随机出来一个6位的数字),存到flag字段中
发送邮件到用户注册用的邮箱。。发送代码如下。。
#region##激活注册
/// <summary>
/// 激活注册
/// </summary>
/// <param name="email"></param>
/// <param name="url"></param>
public static bool Activation(string email, string url)
{
bool flag = false;
string formto = "service@lgooo.com";
string to = email;
string content = "欢迎";
string body = "请点击些链接激活:";
body += "<a href=" + url + ">" + url + "</a>";
string name = "邮箱名";
string upass = "密码";
string smtp = "smtp地址";
SmtpClient _smtpClient = new SmtpClient();
_smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
_smtpClient.Host = smtp; //指定SMTP服务器
_smtpClient.Credentials = new System.Net.NetworkCredential(name, upass);//用户名和密码
MailMessage _mailMessage = new MailMessage();
//发件人,发件人名
_mailMessage.From = new MailAddress(formto, "邮件显示名");
//收件人
_mailMessage.To.Add(to);
_mailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
_mailMessage.Subject = content;//主题
_mailMessage.Body = body;//内容
_mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");//正文编码
_mailMessage.IsBodyHtml = true;//设置为HTML格式
_mailMessage.Priority = MailPriority.High;//优先级
_mailMessage.IsBodyHtml = true;
try
{
_smtpClient.Send(_mailMessage);
flag = true;
}
catch (Exception)
{
flag = false;
}
return flag;
}
#endregion
以上方参数url可以带上参数(用户ID和激活生成的md5加密的一个字符串flag)
跳转页再通过这两个参数判断。。是否存在。。如果存在。。只要flag字段相同。。就把IsActivation改为1.。。。激活成功
#7
比如说将该用户的状态值由初始状态0改为激活状态1 之类的
#8
现在有个问题,就是那个链接怎么写都错嘛!邮箱无法识别链接
#9
链接上面带个参数
在指定页面获取参数 发送的时候将这个参数加密
到你的页面 解密参数 然后修改数据库标记
在指定页面获取参数 发送的时候将这个参数加密
到你的页面 解密参数 然后修改数据库标记
#10
以前做过,其实楼主你可以参考下DISCUZ.net的代码设计,他里面也有这方面的设计的。
#11
我也正准备做这样一个功能。mark一下
#12
我现在连那个链接都有点问题,链接不知道怎么回事显示的不是链接
#13
学习中~~~多指教。
#14
自己服务器接收参数更新标识的字段呗
#15
哎,关键是你连基本的思路都没有
如果你是用change.aspx来处理用户的状态,最简单的:在邮箱中的链接是 http://youdomain.com/change.aspx?uid=123 123为用户的ID
change.aspx.cs里面
page_load方法内
if(!string.isnullorempty(request["uid"]))
{
int uid=convert.toint32(request["uid"].tostring());
string sql="update member set flag=1 where uid="+uid;//假如flag字段为表示用户是否激活的字段,0为默认未激活,1为激活,大体就是这样,如果这样你都不理解,我也没办法了
}
如果你是用change.aspx来处理用户的状态,最简单的:在邮箱中的链接是 http://youdomain.com/change.aspx?uid=123 123为用户的ID
change.aspx.cs里面
page_load方法内
if(!string.isnullorempty(request["uid"]))
{
int uid=convert.toint32(request["uid"].tostring());
string sql="update member set flag=1 where uid="+uid;//假如flag字段为表示用户是否激活的字段,0为默认未激活,1为激活,大体就是这样,如果这样你都不理解,我也没办法了
}
#16
呵呵,我自己弄错了!谢谢你!
#17
嗯,主要是怎么生成这个链接。
跟用户对应起来。
跟用户对应起来。
#18
如果链接是http://youdomain.com/change.aspx?uid=123,你的意思是123不知道怎么获取是不?这个123就是用户的ID啊,你连用户的邮箱都知道了,ID应该也会知道吧
#1
邮箱中的链接,应该是到你的服务器,你自然就知道了。
#2
点击链接,执行某个操作,可能是修改数据库中的某个字段值,就激活了.
#3
对啊,可是我不太明白呢!
#4
链接里带上你需要的值作为参数
#5
这个我做过,邮箱链接中的参数是你需要的,一般是个id或用户名,当然,一定要把参数加密,不然的话,别人会猜测到这个链接,点击链接后,再把这个参数解密,进行一些操作,把这个账户激活
简单代码如下:
邮箱链接为 http://www.xxx.com?username=加密的字符串,点击后
string userName = 解密方法(Request.QueryString("username"));
再把这个账户激活
明白了吧
简单代码如下:
邮箱链接为 http://www.xxx.com?username=加密的字符串,点击后
string userName = 解密方法(Request.QueryString("username"));
再把这个账户激活
明白了吧
#6
用户表。。。加一个是否激活字段IsActivation(0、未激活,1、己激活 默认为0)。。。
一个验证码自段。。。flag
注册后。。。用MD5方式加密一个字符串(比如随机出来一个6位的数字),存到flag字段中
发送邮件到用户注册用的邮箱。。发送代码如下。。
以上方参数url可以带上参数(用户ID和激活生成的md5加密的一个字符串flag)
跳转页再通过这两个参数判断。。是否存在。。如果存在。。只要flag字段相同。。就把IsActivation改为1.。。。激活成功
一个验证码自段。。。flag
注册后。。。用MD5方式加密一个字符串(比如随机出来一个6位的数字),存到flag字段中
发送邮件到用户注册用的邮箱。。发送代码如下。。
#region##激活注册
/// <summary>
/// 激活注册
/// </summary>
/// <param name="email"></param>
/// <param name="url"></param>
public static bool Activation(string email, string url)
{
bool flag = false;
string formto = "service@lgooo.com";
string to = email;
string content = "欢迎";
string body = "请点击些链接激活:";
body += "<a href=" + url + ">" + url + "</a>";
string name = "邮箱名";
string upass = "密码";
string smtp = "smtp地址";
SmtpClient _smtpClient = new SmtpClient();
_smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
_smtpClient.Host = smtp; //指定SMTP服务器
_smtpClient.Credentials = new System.Net.NetworkCredential(name, upass);//用户名和密码
MailMessage _mailMessage = new MailMessage();
//发件人,发件人名
_mailMessage.From = new MailAddress(formto, "邮件显示名");
//收件人
_mailMessage.To.Add(to);
_mailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
_mailMessage.Subject = content;//主题
_mailMessage.Body = body;//内容
_mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");//正文编码
_mailMessage.IsBodyHtml = true;//设置为HTML格式
_mailMessage.Priority = MailPriority.High;//优先级
_mailMessage.IsBodyHtml = true;
try
{
_smtpClient.Send(_mailMessage);
flag = true;
}
catch (Exception)
{
flag = false;
}
return flag;
}
#endregion
以上方参数url可以带上参数(用户ID和激活生成的md5加密的一个字符串flag)
跳转页再通过这两个参数判断。。是否存在。。如果存在。。只要flag字段相同。。就把IsActivation改为1.。。。激活成功
#7
比如说将该用户的状态值由初始状态0改为激活状态1 之类的
#8
现在有个问题,就是那个链接怎么写都错嘛!邮箱无法识别链接
#9
链接上面带个参数
在指定页面获取参数 发送的时候将这个参数加密
到你的页面 解密参数 然后修改数据库标记
在指定页面获取参数 发送的时候将这个参数加密
到你的页面 解密参数 然后修改数据库标记
#10
以前做过,其实楼主你可以参考下DISCUZ.net的代码设计,他里面也有这方面的设计的。
#11
我也正准备做这样一个功能。mark一下
#12
我现在连那个链接都有点问题,链接不知道怎么回事显示的不是链接
#13
学习中~~~多指教。
#14
自己服务器接收参数更新标识的字段呗
#15
哎,关键是你连基本的思路都没有
如果你是用change.aspx来处理用户的状态,最简单的:在邮箱中的链接是 http://youdomain.com/change.aspx?uid=123 123为用户的ID
change.aspx.cs里面
page_load方法内
if(!string.isnullorempty(request["uid"]))
{
int uid=convert.toint32(request["uid"].tostring());
string sql="update member set flag=1 where uid="+uid;//假如flag字段为表示用户是否激活的字段,0为默认未激活,1为激活,大体就是这样,如果这样你都不理解,我也没办法了
}
如果你是用change.aspx来处理用户的状态,最简单的:在邮箱中的链接是 http://youdomain.com/change.aspx?uid=123 123为用户的ID
change.aspx.cs里面
page_load方法内
if(!string.isnullorempty(request["uid"]))
{
int uid=convert.toint32(request["uid"].tostring());
string sql="update member set flag=1 where uid="+uid;//假如flag字段为表示用户是否激活的字段,0为默认未激活,1为激活,大体就是这样,如果这样你都不理解,我也没办法了
}
#16
呵呵,我自己弄错了!谢谢你!
#17
嗯,主要是怎么生成这个链接。
跟用户对应起来。
跟用户对应起来。
#18
如果链接是http://youdomain.com/change.aspx?uid=123,你的意思是123不知道怎么获取是不?这个123就是用户的ID啊,你连用户的邮箱都知道了,ID应该也会知道吧