(1)使用前需要New一下这个类namespace PMPOrganization.Models{public class ValidateCode{//生成随机生成器private Random random = new Random();//验证码的最大长度public int MaxLength{get { return 10; }}//验证码的最小长度public int MinLength{get { return 1; }}#region 随机生成验证码(数字)////// 随机生成验证码(数字)/// /// 指定验证码的长度///public string CreateValidateCodeByShuZi(int length){int[] randMembers = new int[length];int[] validateNums = new int[length];string validateNumberStr = "";//生成起始序列值int seekSeek = unchecked((int)DateTime.Now.Ticks);Random seekRand = new Random(seekSeek);int beginSeek = (int)seekRand.Next(0, Int32.MaxValue - length * 10000);int[] seeks = new int[length];for (int i = 0; i < length; i++){beginSeek += 10000;seeks[i] = beginSeek;}//生成随机数字for (int i = 0; i < length; i++){Random rand = new Random(seeks[i]);int pownum = 1 * (int)Math.Pow(10, length);randMembers[i] = rand.Next(pownum, Int32.MaxValue);}//抽取随机数字for (int i = 0; i < length; i++){string numStr = randMembers[i].ToString();int numLength = numStr.Length;Random rand = new Random();int numPosition = rand.Next(0, numLength - 1);validateNums[i] = Int32.Parse(numStr.Substring(numPosition, 1));}//生成验证码for (int i = 0; i < length; i++){validateNumberStr += validateNums[i].ToString();}return validateNumberStr;}#endregion#region 随机生成验证码(大小写字母+数字)/// /// 随机生成验证码(大、小写字母+数字)/// /// 验证码的长度///public string CreateValidateCodeByShuZiAndZiMu(int yzmlength){string yanzhengma = string.Empty;var random = new Random((int)DateTime.Now.Ticks);const string textArray = "ABCDEFGHG23KLMNPQRSTU45VWXYZ89abcdefghijk67mnpqrstuvwxyz";for (var i = 0; i < yzmlength; i++){yanzhengma = yanzhengma + textArray.Substring(random.Next() % textArray.Length, 1);}return yanzhengma;}#endregion#region 随机生成验证码(大写字母+数字 或者是小写字母+数字)/// /// 随机生成验证码(大写字母+数字 或者是小写字母+数字)/// /// 验证码长度///private string CreateValidateCodeByShuZiAndZiMu2(int yzmlength){int number;char code;string checkcode = string.Empty;Random random = new Random();for (int i = 0; i < 4; i++){number = random.Next();if (number % 2 == 0){code = (char)('0' + (char)(number % 10));}else{code = (char)('A' + (char)(number % 26));}checkcode += code.ToString();}return checkcode;}#endregion#region 随机生成颜色private Color GetColor(){var corlors = new[] { Color.DarkSeaGreen, Color.Gray, Color.DarkSalmon, Color.Lavender };return corlors[random.Next(corlors.Length)];}private Color GetColor2(){var corlors = new[] { Color.Blue, Color.Green, Color.HotPink, Color.MediumOrchid, Color.Olive, Color.Peru, };return corlors[random.Next(corlors.Length)];}#endregion#region 创建验证码的图片/// /// 创建验证码的图片/// /// 验证码/// width/// heightpublic byte[] CreateValidateGraphic(string validateCode, int width, int height){//Bitmap image = new Bitmap((int)Math.Ceiling(validateCode.Length * 13.0),20);Bitmap image = new Bitmap(width, height);Graphics g = Graphics.FromImage(image);try{//清空图片背景色g.Clear(Color.White);//画图片的干扰线for (int i = 0; i < 15; i++){int x1 = random.Next(image.Width);int x2 = random.Next(image.Width);int y1 = random.Next(image.Height);int y2 = random.Next(image.Height);g.DrawLine(new Pen(GetColor(), 1.7f), x1, y1, x2, y2);}var font = new Font("微软雅黑", 15, (FontStyle.Bold | FontStyle.Italic));var brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height),GetColor2(), GetColor2(), 1.5f, true);g.DrawString(validateCode, font, brush, 5, 13);//画图片的边框线g.DrawRectangle(new Pen(Color.White), 0, 0, image.Width - 1, image.Height - 1);//保存图片数据var stream = new MemoryStream();image.Save(stream, ImageFormat.Jpeg);//输出图片流return stream.ToArray();}finally{g.Dispose();image.Dispose();}} #endregion#region 得到验证码图片的长度////// 得到验证码图片的长度/// /// 验证码的长度///public static int GetImageWidth(int validateNumLength){return (int)(validateNumLength * 16.0);} #endregion//得到验证码的高度public static double GetImageHeight(){return 100;}}}//生成验证码public void ShowValidateCodeImage(){try{Session["YanZhengMa"] = null;var code = new ValidateCode();var yanzhengma = code.CreateValidateCodeByShuZiAndZiMu(5);var imagebytes = code.CreateValidateGraphic(yanzhengma, 90, 50);Response.OutputStream.Write(imagebytes, 0, imagebytes.Length);Session["YanZhengMa"] = yanzhengma;}catch (Exception ex){Log.Error(ex, "PMPOrganization.Login::void ShowValidateCodeImage()");}} html页中
jquery中$("#").attr("src", "/login/showValidateCodeImage?rom=" + Math.random());