国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net mvc驗證碼類使用

asp.net mvc驗證碼類使用

2020-04-15 13:33阿炬 ASP.NET教程

這篇文章主要為大家詳細介紹了asp.net mvc驗證碼類使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

驗證碼類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
namespace QJW.VerifyCode
{
  //用法:
  //public FileContentResult CreateValidate()
  //{
  //  ValidateCode vCode = new ValidateCode();
  //  string code = vCode.CreateValidateCode(5);
  //  Session["ValidateCode"] = code;
  //  byte[] bytes = vCode.CreateValidateGraphic(code);
  //  return File(bytes, "image/JPEG");
  //}
 
 
  public class ValidateCode
  {
    public ValidateCode()
    {
    }
    /// <summary>
    /// 驗證碼的最大長度
    /// </summary>
    public int MaxLength
    {
      get { return 10; }
    }
    /// <summary>
    /// 驗證碼的最小長度
    /// </summary>
    public int MinLength
    {
      get { return 1; }
    }
    /// <summary>
    /// 生成驗證碼
    /// </summary>
    /// <param name="length">指定驗證碼的長度</param>
    /// <returns></returns>
    public string CreateValidateCode(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;
    }
    /// <summary>
    /// 創建驗證碼的圖片
    /// </summary>
    /// <param name="containsPage">要輸出到的page對象</param>
    /// <param name="validateNum">驗證碼</param>
    public byte[] CreateValidateGraphic(string validateCode)
    {
      Bitmap image = new Bitmap((int)Math.Ceiling(validateCode.Length * 12.0), 22);
      Graphics g = Graphics.FromImage(image);
      try
      {
        //生成隨機生成器
        Random random = new Random();
        //清空圖片背景色
        g.Clear(Color.White);
        //畫圖片的干擾線
        for (int i = 0; i < 25; 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(Color.Silver), x1, y1, x2, y2);
        }
        Font font = new Font("Arial", 12, (FontStyle.Bold | FontStyle.Italic));
        LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height),
         Color.Blue, Color.DarkRed, 1.2f, true);
        g.DrawString(validateCode, font, brush, 3, 2);
        //畫圖片的前景干擾點
        for (int i = 0; i < 100; i++)
        {
          int x = random.Next(image.Width);
          int y = random.Next(image.Height);
          image.SetPixel(x, y, Color.FromArgb(random.Next()));
        }
        //畫圖片的邊框線
        g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
        //保存圖片數據
        MemoryStream stream = new MemoryStream();
        image.Save(stream, ImageFormat.Jpeg);
        //輸出圖片流
        return stream.ToArray();
      }
      finally
      {
        g.Dispose();
        image.Dispose();
      }
    }
    /// <summary>
    /// 得到驗證碼圖片的長度
    /// </summary>
    /// <param name="validateNumLength">驗證碼的長度</param>
    /// <returns></returns>
    public static int GetImageWidth(int validateNumLength)
    {
      return (int)(validateNumLength * 12.0);
    }
    /// <summary>
    /// 得到驗證碼的高度
    /// </summary>
    /// <returns></returns>
    public static double GetImageHeight()
    {
      return 22.5;
    }
  }
}

使用方法

?
1
2
3
4
5
6
7
8
9
public FileContentResult CreateValidate()
{
  ValidateCode vCode = new ValidateCode();
  string code = vCode.CreateValidateCode(5);
  Session["ValidateCode"] = code;
  byte[] bytes = vCode.CreateValidateGraphic(code);
 
  return File(bytes, "image/JPEG");
}

HTML
<a href="javascript:;" onclick="reloadcode();"><img id="safecode" src="/common/CreateValidate" js" id="highlighter_38657">

?
1
2
3
4
function reloadcode() {
    var verify = document.getElementById('safecode');
    verify.setAttribute('src', '/common/CreateValidate?' + Math.random());
  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

  • 驗證碼
  • MVC
  • asp.net
  • 延伸 · 閱讀

    精彩推薦
    主站蜘蛛池模板: 国产精品久久久久一区二区三区 | 99视频免费 | 夜夜艹| 免费在线观看av片 | 在线观看日韩av | a级毛片黄 | 国产精品久久久久久久久久免费 | 久久av一区二区三区 | 色在线影院| 成年人在线观看免费视频 | 日韩中文字幕一区 | 国产精品日本一区二区不卡视频 | 亚洲伦理 | www.av在线| 亚洲成人日韩在线 | 欧美成人精品在线 | 国产视频一区二区三区在线观看 | 人人鲁人人莫一区二区三区 | 中文字幕视频在线 | 欧美日韩在线免费观看 | 亚洲天堂中文字幕在线观看 | 青青草成人在线 | 一区二区不卡视频 | 欧美成人免费在线视频 | 九九久久久 | 色之久久综合 | 亚洲精品无 | 久久久久久久久国产精品 | 国产精品成人国产乱一区 | 大片免费播放在线观看视频 | 九九亚洲| 国产成人自拍视频在线观看 | 99精品一区 | 亚洲一区二区三区四区的 | 91精品视频网 | 精品久久久久久久久久久久久久 | 午夜视频免费 | 久久久999精品视频 午夜精品久久久久久久久久久久 | 国产精品久久久久久久久久新婚 | 国产精品美乳在线观看 | 91在线视频播放 |