asp.net注册功能思路及源码
我想做一个注册功能,要有验证,和验证码,当通过验证和验证码时注册成功,提交注册信息,否则,注册失败,信息不提交,亲们,跪求思路及源码...
我想做一个注册功能,要有验证,和验证码,当通过验证和验证码时注册成功,提交注册信息,否则,注册失败,信息不提交,亲们,跪求思路及源码
展开
展开全部
注册时:
第一:注册的验证码会在首先验证,如果错误,跳错,程序停止。
第二:验证输入的信息,譬如用户名的格式啊长度啊,特殊字符啊一些。还有密码的格式,另外就是两次密码的一样与否,如果不符合,跳错,程序停止
第三:验证用户输入的名称是否已经被注册,(有些程序员会在页面上用插件以及ajax直接就验证了,如果重复了,就不会提交,但是个人认为还是在后台重新验证一次,验证的方法就是从会员表里查询和这个用户名一样的用户,如果查的到数据,那么说明已经被占用)。如果已经被注册,那么程序停止。
第四:上述验证都通过了,那么就可以用页面获取到的信息组成一个新的对象,然后放入数据库。这样一个新的用户就注册成功了。
都是手写的。如果能看明白,请采纳。
第一:注册的验证码会在首先验证,如果错误,跳错,程序停止。
第二:验证输入的信息,譬如用户名的格式啊长度啊,特殊字符啊一些。还有密码的格式,另外就是两次密码的一样与否,如果不符合,跳错,程序停止
第三:验证用户输入的名称是否已经被注册,(有些程序员会在页面上用插件以及ajax直接就验证了,如果重复了,就不会提交,但是个人认为还是在后台重新验证一次,验证的方法就是从会员表里查询和这个用户名一样的用户,如果查的到数据,那么说明已经被占用)。如果已经被注册,那么程序停止。
第四:上述验证都通过了,那么就可以用页面获取到的信息组成一个新的对象,然后放入数据库。这样一个新的用户就注册成功了。
都是手写的。如果能看明白,请采纳。
更多追问追答
追问
能看明白,但是有源码吗
展开全部
private void code()
{
System.Random rand = new Random();
int len = rand.Next(4, 6);
char[] chars = "23456789ABCDEFGHJKMNPQRSTUVWXYZ".ToCharArray();
System.Text.StringBuilder myStr = new System.Text.StringBuilder();
for (int iCount = 0; iCount < len; iCount++)
{
myStr.Append(chars[rand.Next(chars.Length)]);
}
string text = myStr.ToString();
// 保存验证码到 session 中以便其他模块使用
this.Session["checkcode"] = text;
Size ImageSize = Size.Empty;
Font myFont = new Font("MS Sans Serif", 20);
// 计算验证码图片大小
using (Bitmap bmp = new Bitmap(10, 10))
{
using (Graphics g = Graphics.FromImage(bmp))
{
SizeF size = g.MeasureString(text, myFont, 10000);
ImageSize.Width = (int)size.Width + 8;
ImageSize.Height = (int)size.Height + 8;
}
}
// 创建验证码图片
using (Bitmap bmp = new Bitmap(ImageSize.Width, ImageSize.Height))
{
// 绘制验证码文本
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.White);
using (StringFormat f = new StringFormat())
{
f.Alignment = StringAlignment.Near;
f.LineAlignment = StringAlignment.Center;
f.FormatFlags = StringFormatFlags.NoWrap;
g.DrawString(
text,
myFont,
Brushes.Black,
new RectangleF(
0,
0,
ImageSize.Width,
ImageSize.Height),
f);
}//using
}//using
// 制造噪声 杂点面积占图片面积的 30%
int num = ImageSize.Width * ImageSize.Height * 10 / 100;
for (int iCount = 0; iCount < num; iCount++)
{
// 在随机的位置使用随机的颜色设置图片的像素
int x = rand.Next(ImageSize.Width);
int y = rand.Next(ImageSize.Height);
int r = rand.Next(255);
int g = rand.Next(255);
int b = rand.Next(255);
Color c = Color.FromArgb(r, g, b);
bmp.SetPixel(x, y, c);
}//for // 输出图片
System.IO.MemoryStream ms = new System.IO.MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
this.Response.ContentType = "image/png";
ms.WriteTo(this.Response.OutputStream);
ms.Close();
}
myFont.Dispose();
Response.End();
}
把上面的方法写到一个aspx的后台在page_load中执行
注册页面的Img src=“checkPic.aspx"
登录后与Session["checkcode"] 比较
{
System.Random rand = new Random();
int len = rand.Next(4, 6);
char[] chars = "23456789ABCDEFGHJKMNPQRSTUVWXYZ".ToCharArray();
System.Text.StringBuilder myStr = new System.Text.StringBuilder();
for (int iCount = 0; iCount < len; iCount++)
{
myStr.Append(chars[rand.Next(chars.Length)]);
}
string text = myStr.ToString();
// 保存验证码到 session 中以便其他模块使用
this.Session["checkcode"] = text;
Size ImageSize = Size.Empty;
Font myFont = new Font("MS Sans Serif", 20);
// 计算验证码图片大小
using (Bitmap bmp = new Bitmap(10, 10))
{
using (Graphics g = Graphics.FromImage(bmp))
{
SizeF size = g.MeasureString(text, myFont, 10000);
ImageSize.Width = (int)size.Width + 8;
ImageSize.Height = (int)size.Height + 8;
}
}
// 创建验证码图片
using (Bitmap bmp = new Bitmap(ImageSize.Width, ImageSize.Height))
{
// 绘制验证码文本
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.White);
using (StringFormat f = new StringFormat())
{
f.Alignment = StringAlignment.Near;
f.LineAlignment = StringAlignment.Center;
f.FormatFlags = StringFormatFlags.NoWrap;
g.DrawString(
text,
myFont,
Brushes.Black,
new RectangleF(
0,
0,
ImageSize.Width,
ImageSize.Height),
f);
}//using
}//using
// 制造噪声 杂点面积占图片面积的 30%
int num = ImageSize.Width * ImageSize.Height * 10 / 100;
for (int iCount = 0; iCount < num; iCount++)
{
// 在随机的位置使用随机的颜色设置图片的像素
int x = rand.Next(ImageSize.Width);
int y = rand.Next(ImageSize.Height);
int r = rand.Next(255);
int g = rand.Next(255);
int b = rand.Next(255);
Color c = Color.FromArgb(r, g, b);
bmp.SetPixel(x, y, c);
}//for // 输出图片
System.IO.MemoryStream ms = new System.IO.MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
this.Response.ContentType = "image/png";
ms.WriteTo(this.Response.OutputStream);
ms.Close();
}
myFont.Dispose();
Response.End();
}
把上面的方法写到一个aspx的后台在page_load中执行
注册页面的Img src=“checkPic.aspx"
登录后与Session["checkcode"] 比较
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询