captcha使用asp.net c#mvc生成并使用刷新按钮进行验证

时间:2016-09-19 08:08:29

标签: captcha

我正在尝试制作验证码。这是我在模型中生成验证码的代码。

private static Random random = new Random();
    public override void ExecuteResult(ControllerContext context)
    {
        Bitmap bmp = new Bitmap(100, 30);
        Graphics g = Graphics.FromImage(bmp);
        g.Clear(Color.DeepPink);
        string randomString = GetCaptchaString(6);
        context.HttpContext.Session["captchastring"] = randomString;
        g.DrawString(randomString, new Font(FontFamily.GenericSansSerif, 17,FontStyle.Italic), new SolidBrush(Color.WhiteSmoke), 2, 2);
        HttpResponseBase response = context.HttpContext.Response;
        response.ContentType = "image/jpeg";
        bmp.Save(response.OutputStream, ImageFormat.Jpeg);
        bmp.Dispose();
    }

    public string GetCaptchaString(int length)
    {
        const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        return new string(Enumerable.Repeat(chars, length)
          .Select(s => s[random.Next(s.Length)]).ToArray());
    }

验证码视图代码如下

  @using (Html.BeginForm("index", "home"))
  {

    <p><img src="/home/ShowCaptchaImage" id="imgCaptchaShow" /></p>`
    <p>Please enter the string as shown above:</p>`
    <p>@Html.TextBox("CaptchaText")</p><a href="#" onclick="javascript:RefreshCaptcha();">Refresh</a>`
    <p><input type="submit" value="Submit" /></p>

  }

我想在刷新链接上再次生成验证码而不刷新页面。

0 个答案:

没有答案