是这样的,我把网站发布到本地iis(5.1)的时候,进行登陆的时候验证码显示不出来 为XX,
而在vs2005里运行正常
这是验证码生成代码:
public partial class Image : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
CreateCodeImage(GenerateCheckCode(4));
}
public string GenerateCheckCode(int CodeNumber )
{
string Str = "0123456789";
char[] ChrStr = Str.ToCharArray();
string CheckCode = string.Empty;
Random rd = new Random();
for (int i = 0; i < CodeNumber; i++)
{
CheckCode += Str.Substring(rd.Next(0,Str.Length),1);
}
return CheckCode;
}
public void CreateCodeImage(string checkCode)
{ if (checkCode == null || checkCode.Trim() == string.Empty)
{
return;
}
Session["codeimage"] = checkCode;
System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);//设置验证图片的长度和高度
Graphics Gh = Graphics.FromImage(image);
try
{
Random rd = new Random();
//画图片的背景噪音点
Gh.Clear(Color.White);
for (int i = 0; i < 25; i++)
{
int x1 = rd.Next(image.Width);//
int x2 = rd.Next(image.Width);
int y1 = rd.Next(image.Height);
int y2 = rd.Next(image.Height);
Gh.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
}
Font font = new Font("Arial", 12, FontStyle.Bold);
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height),
Color.Red, Color.DarkRed, 1.2F, true);
Gh.DrawString(checkCode, font, brush, 2, 2);
//画图片的背景噪音点
for (int i = 0; i < 100; i++)
{
int x = rd.Next(image.Width);
int y = rd.Next(image.Height);
image.SetPixel(x, y, Color.FromArgb(rd.Next()));
}
//画图片的边框线
Gh.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "imgae/Gif";
Response.BinaryWrite(ms.ToArray()); }
catch(Exception ex)
{
Response.Write(ex.Message);
}
finally
{
Gh.Dispose();
image.Dispose();
} }
}
这是调用:
protected void btSubmit_Click(object sender, EventArgs e)
{
string strUserName = this.txtUserName.Text.Trim();
string strUserPwd = this.txtUserPwd.Text.Trim();
DateTime LastTime = DateTime.Now;
DataTable dt = Users.ValidateAdministratorLogin(strUserName);
try
{
if (dt.Rows.Count > 0)
{
if (dt.Rows[0][2].ToString() == strUserPwd.ToString())//如果密码正确
{
string checkcode = Session["codeimage"].ToString();
if (txtValidateNumber.Text.Trim() == checkcode.ToString())
{
Session["userid"] = dt.Rows[0][0];
Session["username"] = strUserName;
Session["userpwd"] = strUserPwd;
string roleid = dt.Rows[0][3].ToString();
Session["roleid"] = roleid;
if (roleid == "1")//如果是超级管理员
{
Users.UpdateAdminLastLoginTime(Convert.ToInt32(dt.Rows[0][0]), LastTime);
Response.Redirect("admin.aspx?name=" + Server.UrlDecode(strUserName) + "");
}
else
{
Users.UpdateAdminLastLoginTime(Convert.ToInt32(dt.Rows[0][0]), LastTime);
Response.Redirect("managenews.aspx?name=" + Server.UrlDecode(strUserName) + "");
}
}
else
{
lblinfo.Text = "验证码错误!";
lblError.Text = "";
}
}
else
{
lblError.Visible = true;
lblError.Text = "密码错误!";
//Response.Write("<script>alert('密码错误!')</script>");
}
}
else
{
lblError.Visible = true;
lblError.Text = "用户不存在!";
//Response.Write("<script>alert('用户不存在!')</script>");
}
}
catch (Exception ex)
{
Response.Write(ex.Message) ;
}
}<asp:Image ID="ImageValidate" runat="server" AlternateText="验证码" ImageUrl="~/Image.aspx" DescriptionUrl="~/Image.aspx"/>
怎么会这样呢?各位大虾帮帮忙吧!
而在vs2005里运行正常
这是验证码生成代码:
public partial class Image : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
CreateCodeImage(GenerateCheckCode(4));
}
public string GenerateCheckCode(int CodeNumber )
{
string Str = "0123456789";
char[] ChrStr = Str.ToCharArray();
string CheckCode = string.Empty;
Random rd = new Random();
for (int i = 0; i < CodeNumber; i++)
{
CheckCode += Str.Substring(rd.Next(0,Str.Length),1);
}
return CheckCode;
}
public void CreateCodeImage(string checkCode)
{ if (checkCode == null || checkCode.Trim() == string.Empty)
{
return;
}
Session["codeimage"] = checkCode;
System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);//设置验证图片的长度和高度
Graphics Gh = Graphics.FromImage(image);
try
{
Random rd = new Random();
//画图片的背景噪音点
Gh.Clear(Color.White);
for (int i = 0; i < 25; i++)
{
int x1 = rd.Next(image.Width);//
int x2 = rd.Next(image.Width);
int y1 = rd.Next(image.Height);
int y2 = rd.Next(image.Height);
Gh.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
}
Font font = new Font("Arial", 12, FontStyle.Bold);
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height),
Color.Red, Color.DarkRed, 1.2F, true);
Gh.DrawString(checkCode, font, brush, 2, 2);
//画图片的背景噪音点
for (int i = 0; i < 100; i++)
{
int x = rd.Next(image.Width);
int y = rd.Next(image.Height);
image.SetPixel(x, y, Color.FromArgb(rd.Next()));
}
//画图片的边框线
Gh.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "imgae/Gif";
Response.BinaryWrite(ms.ToArray()); }
catch(Exception ex)
{
Response.Write(ex.Message);
}
finally
{
Gh.Dispose();
image.Dispose();
} }
}
这是调用:
protected void btSubmit_Click(object sender, EventArgs e)
{
string strUserName = this.txtUserName.Text.Trim();
string strUserPwd = this.txtUserPwd.Text.Trim();
DateTime LastTime = DateTime.Now;
DataTable dt = Users.ValidateAdministratorLogin(strUserName);
try
{
if (dt.Rows.Count > 0)
{
if (dt.Rows[0][2].ToString() == strUserPwd.ToString())//如果密码正确
{
string checkcode = Session["codeimage"].ToString();
if (txtValidateNumber.Text.Trim() == checkcode.ToString())
{
Session["userid"] = dt.Rows[0][0];
Session["username"] = strUserName;
Session["userpwd"] = strUserPwd;
string roleid = dt.Rows[0][3].ToString();
Session["roleid"] = roleid;
if (roleid == "1")//如果是超级管理员
{
Users.UpdateAdminLastLoginTime(Convert.ToInt32(dt.Rows[0][0]), LastTime);
Response.Redirect("admin.aspx?name=" + Server.UrlDecode(strUserName) + "");
}
else
{
Users.UpdateAdminLastLoginTime(Convert.ToInt32(dt.Rows[0][0]), LastTime);
Response.Redirect("managenews.aspx?name=" + Server.UrlDecode(strUserName) + "");
}
}
else
{
lblinfo.Text = "验证码错误!";
lblError.Text = "";
}
}
else
{
lblError.Visible = true;
lblError.Text = "密码错误!";
//Response.Write("<script>alert('密码错误!')</script>");
}
}
else
{
lblError.Visible = true;
lblError.Text = "用户不存在!";
//Response.Write("<script>alert('用户不存在!')</script>");
}
}
catch (Exception ex)
{
Response.Write(ex.Message) ;
}
}<asp:Image ID="ImageValidate" runat="server" AlternateText="验证码" ImageUrl="~/Image.aspx" DescriptionUrl="~/Image.aspx"/>
怎么会这样呢?各位大虾帮帮忙吧!
和.netframework的Image类重名了,换个类名