说明一下,从iis浏览的话,不会出现一下情况。CSS:.InputText
{
border: 1px solid #ddd;
background: #fff url(../resource/image/input-shaddow.gif) no-repeat left top;
font: 11px Arial, Helvetica, sans-serif;
color: #646464;
padding: 5px 7px;
float: left;
margin: 0 10px 0 0;
}
页面 <div id="wrapper" style="vertical-align: middle; text-align: center">
<div id="main" style="text-align: left">
<h3>
System Login</h3>
<fieldset>
<dl>
<dt>ID:</dt>
<dd>
<asp:TextBox ID="tbid" runat="server" CssClass="InputText"></asp:TextBox>
</dd>
</dl>
<dl>
<dt>Password:</dt>
<dd>
<asp:TextBox ID="tbpwd" runat="server" CssClass="InputText1" TextMode="Password"></asp:TextBox>
</dd>
</dl>
<p>
<span>Valid Code:</span>
<asp:TextBox ID="tbvcd" runat="server" ></asp:TextBox>
</p>
<img id="imgverify" alt="点击刷新验证码" style="cursor: pointer; text-align: center" onclick="getnewcode('imgverify')"
title="看不清换一张" />
</p>
<p>
<asp:Button ID="btnsignin" runat="server" Text="sign in" CssClass="button-submit"
OnClick="btnsignin_Click" />
<asp:Button ID="btnclear" runat="server" Text="clear" CssClass="button-submit" OnClientClick="clear()" />
</p>
</fieldset>
</div>
</div>
handler /// <summary>
/// $codebehindclassname$ 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class ValidCodeHandler : IHttpHandler, IRequiresSessionState
{ int intLength = 5; //长度
string strIdentify = "Identify"; //随机字串存储键值,以便存储到Session中 #region IHttpHandler 成员 /// <summary>
/// 实例可再次使用
/// </summary>
public bool IsReusable
{
get { return true; }
} /// <summary>
///
/// </summary>
/// <param name="context"></param>
public void ProcessRequest(HttpContext context)
{
//设置输出流图片格式
context.Response.ContentType = "image/gif"; Bitmap b = new Bitmap(200, 60);
Graphics g = Graphics.FromImage(b);
g.FillRectangle(new SolidBrush(Color.YellowGreen), 0, 0, 200, 60);
Font font = new Font(FontFamily.GenericSerif, 48, FontStyle.Bold, GraphicsUnit.Pixel);
Random r = new Random(); //合法随机显示字符列表
string strLetters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
StringBuilder s = new StringBuilder(); //将随机生成的字符串绘制到图片上
for (int i = 0; i < intLength; i++)
{
s.Append(strLetters.Substring(r.Next(0, strLetters.Length - 1), 1));
g.DrawString(s[s.Length - 1].ToString(), font, new SolidBrush(Color.Blue), i * 38, r.Next(0, 15));
} //生成干扰线条
Pen pen = new Pen(new SolidBrush(Color.Blue), 2);
for (int i = 0; i < 10; i++)
{
g.DrawLine(pen, new Point(r.Next(0, 199), r.Next(0, 59)), new Point(r.Next(0, 199), r.Next(0, 59)));
}
b.Save(context.Response.OutputStream, ImageFormat.Gif); //不区分大小写
context.Session[strIdentify] = s.ToString().ToLower(); //先保存在Session中,验证与用户输入是否一致
context.Response.End();
} #endregion
}
在debug时,页面上所有的控件的背景都变成了验证码
{
border: 1px solid #ddd;
background: #fff url(../resource/image/input-shaddow.gif) no-repeat left top;
font: 11px Arial, Helvetica, sans-serif;
color: #646464;
padding: 5px 7px;
float: left;
margin: 0 10px 0 0;
}
页面 <div id="wrapper" style="vertical-align: middle; text-align: center">
<div id="main" style="text-align: left">
<h3>
System Login</h3>
<fieldset>
<dl>
<dt>ID:</dt>
<dd>
<asp:TextBox ID="tbid" runat="server" CssClass="InputText"></asp:TextBox>
</dd>
</dl>
<dl>
<dt>Password:</dt>
<dd>
<asp:TextBox ID="tbpwd" runat="server" CssClass="InputText1" TextMode="Password"></asp:TextBox>
</dd>
</dl>
<p>
<span>Valid Code:</span>
<asp:TextBox ID="tbvcd" runat="server" ></asp:TextBox>
</p>
<img id="imgverify" alt="点击刷新验证码" style="cursor: pointer; text-align: center" onclick="getnewcode('imgverify')"
title="看不清换一张" />
</p>
<p>
<asp:Button ID="btnsignin" runat="server" Text="sign in" CssClass="button-submit"
OnClick="btnsignin_Click" />
<asp:Button ID="btnclear" runat="server" Text="clear" CssClass="button-submit" OnClientClick="clear()" />
</p>
</fieldset>
</div>
</div>
handler /// <summary>
/// $codebehindclassname$ 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class ValidCodeHandler : IHttpHandler, IRequiresSessionState
{ int intLength = 5; //长度
string strIdentify = "Identify"; //随机字串存储键值,以便存储到Session中 #region IHttpHandler 成员 /// <summary>
/// 实例可再次使用
/// </summary>
public bool IsReusable
{
get { return true; }
} /// <summary>
///
/// </summary>
/// <param name="context"></param>
public void ProcessRequest(HttpContext context)
{
//设置输出流图片格式
context.Response.ContentType = "image/gif"; Bitmap b = new Bitmap(200, 60);
Graphics g = Graphics.FromImage(b);
g.FillRectangle(new SolidBrush(Color.YellowGreen), 0, 0, 200, 60);
Font font = new Font(FontFamily.GenericSerif, 48, FontStyle.Bold, GraphicsUnit.Pixel);
Random r = new Random(); //合法随机显示字符列表
string strLetters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
StringBuilder s = new StringBuilder(); //将随机生成的字符串绘制到图片上
for (int i = 0; i < intLength; i++)
{
s.Append(strLetters.Substring(r.Next(0, strLetters.Length - 1), 1));
g.DrawString(s[s.Length - 1].ToString(), font, new SolidBrush(Color.Blue), i * 38, r.Next(0, 15));
} //生成干扰线条
Pen pen = new Pen(new SolidBrush(Color.Blue), 2);
for (int i = 0; i < 10; i++)
{
g.DrawLine(pen, new Point(r.Next(0, 199), r.Next(0, 59)), new Point(r.Next(0, 199), r.Next(0, 59)));
}
b.Save(context.Response.OutputStream, ImageFormat.Gif); //不区分大小写
context.Session[strIdentify] = s.ToString().ToLower(); //先保存在Session中,验证与用户输入是否一致
context.Response.End();
} #endregion
}
在debug时,页面上所有的控件的背景都变成了验证码
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货