给页面加背景图片,显示的却是我画的验证码。。
静态页面是没问题的,但是 运行起来,尼玛背景图成 验证码了 亲用的CSS加的背景background:url(images/main-bg.jpg) no-repeat left top;
静态页面是没问题的,但是里面的图片路径不管换成什么都是我自己画的验证码的图片 
 即使是图片不存在 。我是用一般处理程序画的一个验证码。。

解决方案 »

  1.   

    这句代码不会出现你说的问题,你检查一下你的程序,left top两个你是不是应该调换一下位置
      

  2.   

    画验证码的代码:using System;
    using System.Collections;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Linq;
    using System.Drawing;
    using System.Text;
    using System.Drawing.Imaging;
    using System.Web.SessionState;namespace NewProject
    {
        /// <summary>
        /// ValidateImageHandler 生成网站验证码功能
        /// </summary>
        public class ValidateImageHandler : IHttpHandler, IRequiresSessionState
        {
            int intLength = 4;               //长度
            string strIdentify = "Identify"; //随机字串存储键值,以便存储到Session中
            public ValidateImageHandler()
            {
            }        /// <summary>
            ///  生成验证图片核心代码
            /// </summary>
            /// <param name="hc"></param>
            public void ProcessRequest(HttpContext hc)
            {
                //设置输出流图片格式
                hc.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 < 1; 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(hc.Response.OutputStream, ImageFormat.Gif);
                hc.Session["strIdentify"] = s.ToString(); //先保存在Session中,验证与用户输入是否一致
                hc.Response.End();        }        /// <summary>
            /// 表示此类实例是否可以被多个请求共用(重用可以提高性能)
            /// </summary>
            public bool IsReusable
            {
                get
                {
                    return true;
                }
            }
        }}
      

  3.   

    画验证码的代码:
     /// <summary>
        /// ValidateImageHandler 生成网站验证码功能
        /// </summary>
        public class ValidateImageHandler : IHttpHandler, IRequiresSessionState
        {
            int intLength = 4;               //长度
            string strIdentify = "Identify"; //随机字串存储键值,以便存储到Session中
            public ValidateImageHandler()
            {
            }        /// <summary>
            ///  生成验证图片核心代码
            /// </summary>
            /// <param name="hc"></param>
            public void ProcessRequest(HttpContext hc)
            {
                //设置输出流图片格式
                hc.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 < 1; 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(hc.Response.OutputStream, ImageFormat.Gif);
                hc.Session["strIdentify"] = s.ToString(); //先保存在Session中,验证与用户输入是否一致
                hc.Response.End();        }        /// <summary>
            /// 表示此类实例是否可以被多个请求共用(重用可以提高性能)
            /// </summary>
            public bool IsReusable
            {
                get
                {
                    return true;
                }
            }
        }
      

  4.   

    How do you know me?
      

  5.   

    用CSS样式工具调一调比如firedbug
      

  6.   

    先清空下解决方案,刷新项目,再看
    如果仍然有问题,查看调用验证的页面,是不是调用页面HttpContext的跟验证码代码的冲突了。
      

  7.   

    怎么去证明HttpContext和 验证代码冲突了呢?