数据库 表的设计

State为用户状态  0为禁用  1为可用  默认为0,下面有个UserGUID,这个字段将来用于激活账户

首先你要写一个表单,验证码神马的,这个我就不写了。。直接写处理的 代码在下面

          if (IsPostBack)
{
string userName = Request["UserName"];
string userPwd = Request["UserPwd"];
string userEmail = Request["UserEmail"];
string EmailGUID = Guid.NewGuid().ToString(); //UserInfosEntities
if (CheckValidCode())
{
if (InsertUserInfo(new userinfo()
{
UserName = userName,
UserPwd = userPwd,
State = ,
UserEmail = userEmail,
UserGUID = EmailGUID }))
{ string str = Request.ServerVariables["Http_Host"];      //这句话的意思是获取域名和端口,因为我是在本机调试的,要是重新生成的话端口就改了 - - 我很郁闷 ...这是大神告诉我的...
MailMessage mailMsg = new MailMessage(); //要引入System.Net这个Assembly
mailMsg.From = new MailAddress("670196906@qq.com", "自己的名字"); //源邮件地址
mailMsg.To.Add(new MailAddress(userEmail, "对方的名字")); //目的邮件地址。可以有多个收件人
mailMsg.Subject = "激活帐号"; //发送邮件的标题
userName = Common.Base64.EncodeBase64(Encoding.UTF8, userName); //这个是把传去的名字转换成base64的,我试过Encoding,不行,找了好久,中文一直乱码,只好把它转成这个样子了。。 string emailStr
                = string.Format("单击以下激活链接,激活帐号http://{0}/ActivUserInfo.aspx?UserName={1}&GUID={2}",str,userName,EmailGUID);                  //这个就是将来发到邮箱里面的激活链接
       mailMsg.Body = emailStr; //发送邮件的内容
mailMsg.IsBodyHtml = true;                      //内容是否是HTML
mailMsg.BodyEncoding = Encoding.UTF8;                //编码格式为UTF-8
SmtpClient client = new SmtpClient("smtp.qq.com"); // 发件人所使用邮箱的SMTP服务器地址。
client.Credentials = new NetworkCredential("发送邮件的帐号", "发送邮件的密码"); //发件人邮箱的用户名和密码.
client.Send(mailMsg);                        //发送邮件
Response.Redirect("/Admin.aspx"); }
else
{
Response.Redirect("/Login.aspx"); } }
else
{ Message = "验证码输入错误,请重新输入!!!";
}
 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace WebDemoUserInfo
{
public partial class ActivUserInfo : System.Web.UI.Page
{
public string ActiveMessage { get; set; }
protected void Page_Load(object sender, EventArgs e)
{                                                        
string userName = Common.Base64.DecodeBase64(Encoding.UTF8, Request["UserName"]); //把传过来的UserName解密,Base64的代码在后面
string gUid = Request["GUID"];                                //
if (userName != null && gUid != null)
{
int result = CheckUserInfo(userName, gUid);
switch (result)
{
case :
ActiveMessage = "激活失败";
break;
case :
ActiveMessage = "激活成功";
break;
case :
ActiveMessage = "不能重复激活!!!";
break;
defalut: ActiveMessage = "未知错误,请联系系统管理员!!!";
}
} } private int CheckUserInfo(string userName, string gUID)
{
try
{
var db = new UserInfosEntities();
if (db.userinfo.Count(i => i.UserName == userName && i.UserGUID == gUID) == )
{
var model = db.userinfo.FirstOrDefault(i => i.UserGUID == gUID);
if (model != null && model.State == )
{
model.State = ; }
else
{
return ;
}
return db.SaveChanges() == ? : ;
}
else
{
return ;
}
}
finally
{
Dispose();
}
}
}
}
   public static class Base64
{
public static string EncodeBase64(Encoding encoding, string source)
{
byte[] bytes = encoding.GetBytes(source);
return Convert.ToBase64String(bytes);
} public static string DecodeBase64(Encoding encoding, string result)
{
byte[] bytes = Convert.FromBase64String(result);
return encoding.GetString(bytes);
}
}

Base64 加解密

整天没事自己研究...觉得还有好多要学....加油...

Asp.Net 注册 邮箱激活的更多相关文章

  1. asp.net mvc邮箱激活

    1.发送邮件 public ActionResult SendEmail() { var member = dbSession.MemberRepository.LoadEntities(p => ...

  2. Java实现注册邮箱激活验证

    邮件发送servelet实现 package com.xbs.register.main; import java.io.IOException;import java.util.Date;impor ...

  3. Java实现邮箱激活验证

    最近从项目分离出来的注册邮箱激活功能,整理一下,方便下次使用 RegisterValidateService.java [java] view plaincopyprint?   package co ...

  4. .net 实现注册邮箱验证激活

    没事上网当了个注册邮箱验证激活的代码,用起来感觉还不错,特意和大家要一起分享一下 下面是主要实现代码: uing System.Net.Mail; public partial class jquer ...

  5. Spring技术_邮箱注册_激活_获取验证码

    项目结构 项目中用到的sql: create database hrSystem; use hrSystem; CREATE TABLE `emailverificationcode` ( `id` ...

  6. ASP.NET MVC 控制器激活(一)

    ASP.NET MVC 控制器激活(一) 前言 在路由的篇章中讲解了路由的作用,讲着讲着就到了控制器部分了,从本篇开始来讲解MVC中的控制器,控制器是怎么来的?MVC框架对它做了什么?以及前面有的篇幅 ...

  7. ASP.NET MVC 控制器激活(三)

    ASP.NET MVC 控制器激活(三) 前言 在上个篇幅中说到从控制器工厂的GetControllerInstance()方法来执行控制器的注入,本篇要讲是在GetControllerInstanc ...

  8. mvc route的注册,激活,调用流程

    mvc route的注册,激活,调用流程(三) net core mvc route的注册,激活,调用流程 mvc的入口是route,当前请求的url匹配到合适的route之后,mvc根据route所 ...

  9. yii框架中邮箱激活(数字签名)

    控制器: //发送邮箱,激活账号   public function actionEmail()   {        $email=Yii::$app->request->get('em ...

随机推荐

  1. linux远程管理工具

    一.常见的远程管理控制方式主要有以下几种 ①RDP(remote desktop protocol)协议 远程桌面协议,我们常用的windows操作系统就是的远程桌面管理就是基于该协议的. ②teln ...

  2. Linux Eclipse代码提示功能设置(Java & C/C++)

    最近在Linux下开发,由于长期使用Visual Studio 2010,对代码提示功能情有独钟,现在在Linux下,使用Eclipse做开发,当然免不了怀念Visual Studio强悍的代码提示, ...

  3. 移动存储卡仍然用FAT32文件系统的真相

    微软在2001年就为自家的XP系统的本地磁盘默认使用了NTFS文件系统,但是12年之后,市面上的USB可移动设备和SD卡等外置存储器仍然在用着FAT32文件格式,这是什么理由让硬件厂商选择过时的文件系 ...

  4. Linux系统Wpa_supplicant用法小结

    Wpa_supplicant是linux系统下一个非常强大的无线网卡管理程序.google搜索到的它似乎不支持WPA2和AES,其实不然,参考它的文档可以发现,WPA2只是RSN的别名,而AES也是C ...

  5. mysql登录时,ERROR 1045 (28000): 错误解决办法

    错误问题的描述: ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) ERROR 10 ...

  6. 常用shell变量$#,$@,$0,$1,$2等

    常用shell变量$#,$@,$0,$1,$2的含义解释: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返 ...

  7. jsp的include两种使用方法区别

    指令include是将被包含页面中的代码复制粘贴到主页面中,最后编译形成主页面的类文件(一个). 指令include中file属性的值必须是项目中已存在的文件,否则主页面报异常. 指令include如 ...

  8. JVM内存管理和JVM垃圾回收机制

    JVM内存管理和JVM垃圾回收机制(1) 这里向大家描述一下JVM学习笔记之JVM内存管理和JVM垃圾回收的概念,JVM内存结构由堆.栈.本地方法栈.方法区等部分组成,另外JVM分别对新生代和旧生代采 ...

  9. OC封装的TLV数据格式解析库

    作者:朱克锋 邮箱:zhukefeng@iboxpay.com 转载请注明出处:http://blog.csdn.net/linux_zkf TLV是一种可变格式,意思就是: Type类型, Leng ...

  10. 提高你30%的设计效率的PPT快捷键

    在编辑幻灯片的状态下: [Ctrl]+[A]选择全部对象或幻灯片 [Ctrl]+[B]应用(解除)文本加粗 [Ctrl]+[C]复制 [Ctrl]+[D]快速复制对象 [Ctrl]+[E]段落居中对齐 ...