点点细雨的项目日记(五) 页…

点点细雨的原创博文!供各位在编程之路的同学们参考~

本人博文允许转载,但请在文章显著位置注明转载出处以及原文链接,谢谢合作!

其实这个也不算是这个项目里用的啦,以前老师给推荐的,很好用哦!

页面的图像按钮 -> 链接地址为验证码的页面
-> 验证码返回一个随机生成的图片到图像按钮并将图片的数字保存在SESSION里
->页面通过文本框用户输入中的数值与SESSION比较
-> 进行判断

源代码:

using System;

using
System.Collections;

using
System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using
System.Web.Security;

using
System.Web.UI;

using
System.Web.UI.HtmlControls;

using
System.Web.UI.WebControls;

using
System.Web.UI.WebControls.WebParts;

using
System.Xml.Linq;

using
System.Drawing;

namespace
AnboSchoolServeSystem.Admin

{

 
  public partial class VerityCode :
System.Web.UI.Page

 
  {

 
      protected
void Page_Load(object sender, EventArgs e)

 
     
{

 
     
   
this.CreateImage(this.GenerateNumber(4));

 
     
}

 
      private
void CreateImage(string checkCode)

 
     
{

 
     
    int iwidth =
(int)(checkCode.Length * 15);

 
     
    System.Drawing.Bitmap image =
new System.Drawing.Bitmap(iwidth, 20);

 
     
    Graphics g =
Graphics.FromImage(image);

 
     
   
g.Clear(Color.White);

 
     
    Color[] c = { Color.Black,
Color.Red, Color.DarkBlue, Color.Green, Color.Orange, Color.Brown,
Color.DarkCyan, Color.Purple };

 
     
    string[] font = { "Verdana",
"Microsoft Sans Serif", "Comic Sans MS", "Arial", "宋体"
};

 
     
    Random rand = new
Random();

 
     
    for (int i = 0; i
< 50; i++)

 
     
    {

 
     
     
  int x = rand.Next(image.Width);

 
     
     
  int y = rand.Next(image.Height);

 
     
     
  g.DrawRectangle(new Pen(Color.LightGray, 0), x,
y, 1, 1);

 
     
    }

 
     
    for (int i = 0; i
< checkCode.Length; i++)

 
     
    {

 
     
     
  int cindex = rand.Next(7);

 
     
     
  int findex = rand.Next(5);

 
     
     
  Font f = new System.Drawing.Font(font[findex],
12, System.Drawing.FontStyle.Bold);

 
     
     
  Brush b = new
System.Drawing.SolidBrush(c[cindex]);

 
     
     
  int ii = 4;

 
     
     
  if ((i + 1) % 2 == 0)

 
     
     
  {

 
     
     
      ii =
2;

 
     
     
  }

 
     
     
  g.DrawString(checkCode.Substring(i, 1), f, b, 3
+ (i * 12), ii);

 
     
    }

 
     
    g.DrawRectangle(new
Pen(Color.Black, 0), 0, 0, image.Width - 1, image.Height -
1);

 
     
    System.IO.MemoryStream ms =
new System.IO.MemoryStream();

 
     
    image.Save(ms,
System.Drawing.Imaging.ImageFormat.Jpeg);

 
     
   
Response.ClearContent();

 
     
    Response.ContentType =
"Image/Jpeg";

 
     
   
Response.BinaryWrite(ms.ToArray());

 
     
    g.Dispose();

 
     
    image.Dispose();

 
     
}

 
      public
string GenerateNumber(int codeLength)

 
     
{//,W,E,R,T,Y,U,I,P,L,K,J,H,G,F,S,A,Z,X,C,V,B,N,M

 
     
    string Vchar =
"1,2,3,4,5,6,7,8,9";

 
     
    string[] VcArray =
Vchar.Split(',');

 
     
    string VNum =
"";

 
     
    Random random = new
Random();

 
     
    for (int i = 0; i
<= codeLength; i++)

 
     
    {

 
     
     
  int iNum = 0;

 
     
     
  while ((iNum = Convert.ToInt32(VcArray.Length *
random.NextDouble())) == VcArray.Length)

 
     
     
  {

 
     
     
      iNum =
Convert.ToInt32(VcArray.Length * random.NextDouble());

 
     
     
  }

 
     
     
  VNum += VcArray[iNum];

 
     
    }

 
     
    Session["VerifyCode"] =
VNum.ToString().Trim();

 
     
    return VNum;

 
     
}

 
  }

------------------------------------------------------------------------------

页面源代码片段:

     
     
     
     
  <tr>

     
     
     
     
    <td
height="35" class="style1" ><span
class="login_txt">验证码:</span></td>

     
     
     
     
    <td
height="35" colspan="2" class="top_hui_text">
  <asp:TextBox
ID="txtVerityCode" 

     
     
     
     
     
     
runat="server"
ontextchanged="txtVerityCode_TextChanged"></asp:TextBox>

     
     
     
     
     
  <asp:ImageButton
ID="ImageButton1" runat="server" ImageUrl="~/Admin/VerityCode.aspx"
ToolTip="点击切换" />

     
     
     
     
     
 

     
     
     
     
     
</td>

cs文件中的事件:

protected void
btnLogin_Click(object sender, EventArgs e)

     
  {

     
      string
username=txtName.Text.ToString().Trim();

     
      string
userpwd=txtPwd.Text.ToString().Trim();

     
     
 

     
      string
code = Session["VerifyCode"].ToString();

     
      if
(txtVerityCode.Text.Trim() == "")

     
      {

     
     
   
Page.ClientScript.RegisterStartupScript(this.GetType(), "lb",
"<script
language='javascript'>alert('验证码输入不能为空!');</script>",
false);

     
      }

     
      else if
(txtVerityCode.Text.Trim() != code)

     
      {

     
     
   
Page.ClientScript.RegisterStartupScript(this.GetType(), "lb",
"<script
language='javascript'>alert('验证码输入错误,请重新输入!');</script>",
false);

     
      }

     
      else

     
      {

     
     
    

     
     
    users
 users= usersBll.GetUsersByNameAndPwd(username,
FormsAuthentication.HashPasswordForStoringInConfigFile(userpwd,
"SHA1"));

     
     
    if (users != null)

     
     
    {

     
     
     
  //Session.Add("CurrentUser", admin);

     
     
     
  //if (LogsManager.AddLogs(admin.UserID))

     
     
     
  //{

     
     
     
     
Response.Redirect("index.aspx");

     
     
     
     
Session["users_id"] = users.Users_id;

     
     
     
      if
(users.Users_power == true)

     
     
     
      {

     
     
     
     
    Session["superadmin"] =
true;

     
     
     
      }

     
     
     
   
  

     
     
     
  //}

     
     
     
  //else

     
     
     
  //{

     
     
     
  //  
 Session.Abandon();

     
     
     
  //  
 Page.RegisterStartupScript("err2",
"<script>alert('日志写入失败,请重试!');</script>");

     
     
     
  //}

     
     
    }

     
     
    else

     
     
    {

     
     
     
  Page.RegisterStartupScript("err3",
"<script>alert('密码或者用户名不正确,请重新输入!');document.getElementByIdx_x('txtUserName').select();document.getElementByIdx_x('txtUserName').focus();</script>");

     
     
     
  return;

     
     
    }

     
      }

     
  }

     
  protected void txtVerityCode_TextChanged(object
sender, EventArgs e)

     
  {

     
      string
code = Session["VerifyCode"].ToString();

     
      if
(txtVerityCode.Text.Trim() != code)

     
      {

     
     
   
Page.ClientScript.RegisterStartupScript(this.GetType(), "lb",
"<script
language='javascript'>alert('验证码输入错误,请重新输入!');</script>",
false);

     
      }

     
  }

时间: 2024-10-31 12:05:43

点点细雨的项目日记(五)&amp;nbsp;页…的相关文章

点点细雨的项目日记(六)&amp;amp;nbsp;关…

点点细雨的原创博文!供各位在编程之路的同学们参考~ 本人博文允许转载,但请在文章显著位置注明转载出处以及原文链接,谢谢合作! 今天白忙了一天,(- o -)~zZ 因为这次是一个团队的项目,而我作为一个团队的管理者,感觉自己的差距还是有点远啊.所以搜集了一些关于项目经理的资料,希望和大家共同学习. 一.软件公司项目经理岗位职责 主要职责: 1. 计划: a)项目范围.项目质量.项目时间.项目成本的确认. b)项目过程/活动的标准化.规范化. c)根据项目范围.质量.时间与成本的综合因素的考虑,进

点点细雨的项目日记(四)&amp;amp;nbsp;权…

点点细雨的原创博文!供各位在编程之路的同学们参考~ 本人博文允许转载,但请在文章显著位置注明转载出处以及原文链接,谢谢合作! 在一开始的项目需求中,我提到过关于权限的重要性,所以,首先重点做了权限的部分. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Model {     public class popedom     {         priv

点点细雨的项目日记(一)&amp;amp;nbsp;需…

点点细雨的原创博文!供各位在编程之路的同学们参考~ 本人博文允许转载,但请在文章显著位置注明转载出处以及原文链接,谢谢合作! 这周开始,我们班在石家庄金石园区开始了为期两周的项目实训.去年的时候,我们做的是酒店管理系统,也是两周的时间,但是当时学的东西不够多,所以花了一周的时间学习三层架构.复习数据库等等,反正就是以学习为主. 这次的貌似不一样了,老师第一天过来的时候就说,这是一个真实的项目,如果你们哪个小组完成的很好的话,就直接用那个方案了.这让我们很兴奋啊....o(* ̄▽ ̄*)o  好啦,

点点细雨的项目日记(三)&amp;amp;nbsp;三…

点点细雨的原创博文!供各位在编程之路的同学们参考~ 本人博文允许转载,但请在文章显著位置注明转载出处以及原文链接,谢谢合作! 昨天我们做到了数据库的搭建,数据库搭建完成后就是整个项目的搭建,那么首先就是三层架构. 三层架构,就是数据访问层.业务逻辑层和表示层三部分,整体穿插一个实体类进行数据的传递. 值得一提的是这次数据访问层的搭建方式,跟原来有很大的不同. /// <summary>         /// 根据用户名,密码得到单个管理员         /// </summary&g

点点细雨的项目日记(二)&amp;amp;nbsp;数…

点点细雨的原创博文!供各位在编程之路的同学们参考~ 本人博文允许转载,但请在文章显著位置注明转载出处以及原文链接,谢谢合作! O(∩_∩)O~ 经过对项目的分析,下面开始了对数据库进行了构建. 一个上午的讨论,我们确定了几个表,然后写了一个文档的说明. 然后..... 我们找到了很多的不足 1.新闻表的信息不全 2.类型表的关联不够密切 3.用户登录的身份验证不够严密 4.权限表的验证设置不够严密 所以,我们进行了修改...    在这次修改中,我们合并了 一些琐碎的分类表,这样使分类的管理更加

jboss启动项目,但是打开登录页都是空白的

问题描述 jboss启动项目,但是打开登录页都是空白的 启动进入登录页时,都为空白,什么错也没有报,后台也没有报错,就真的搞不懂怎么出现这个现象. 解决方案 你的配置是否有问题,打开的是你的部署的程序么

Office构筑Sharepoint项目的五个建议

在过去的几个月,事实上有好几年里,企业机构对Sharepoint的看法明显有着分歧.一部分企业认为Sharepoint是微软出品的另一种产品,他们可以购买并安装在他们当前的系统中;另一部分认为Sharepoint更是一个可以构筑的战略平台,并且将从中获得商业利益. Sharepoint - 产品 理论上来说Sharepoint是一个产品.由微软开发,并且必须花钱购买.是的,你可以简单的购买序列号,往服务器上插入CD,然后惊讶于只需要这点点那点点就可以建立起一个Sharepoint服务器.他甚至可

整合大量开源库项目(五)跳动的TextView JumpingBeans,良好体验的滚动栏ConvenientBanner

转载请注明出处:王亟亟的大牛之路 时间过得很快,这一系列已经写了第五篇了(感觉还要写好久),今天又引入了2个很好用的库JumpingBeans,ConvenientBanner.首先,先看一下效果. 1.这2个控件做了什么? JumpingBeans是加载页面时那个蓝色跳动的动画效果. JumpingBeans:https://github.com/frakbot/JumpingBeans ConvenientBanner是滚动的那个广告栏. ConvenientBanner:https://g

有效实施CRM项目的五个基本要素

一.战略制定 六种方面的战略影响CRM项目的有效实施.它们是市场定位,渠道选择,价格制定,市场推广,品牌和广告.其中市场定位,渠道选择,价格制定对CRM的实施效果有最大的影响. 市场定位将最终决定客户的来源及市场部门的组织机构. 价格是在消费市场中最敏感的因素. 它蒋影响和反映公司所提供的产品和服务的价值. 渠道的选择直接影响公司如和有效将他们的服务和产品传递到达客户手里.这几个方面的战略需要在实施过程中经常被审阅和修定. 二 市场定位 与过去的市场定位以产品和服务为导向相比,最近更多的公司考虑