.net core第三方图形验证

2023-12-01

asp.net core是否提供第三方图形验证库的示例?我正在研究这个,但我查了一些资料但没有成功,请给我一些例子!谢谢。 供我参考,还有其他好的库吗?

https://tutexchange.com/how-to-implement-captcha-in-asp-net-core/


您可以使用Bitmap库生成图形验证码。首先,创建一个生成的工具类。代码如下:

public class VerifyCodeHelper
    {
        public static Bitmap CreateVerifyCode(out string code)
        {
            //Create a Bitmap object and draw
            Bitmap bitmap = new Bitmap(200, 60);
            Graphics graph = Graphics.FromImage(bitmap);
            graph.FillRectangle(new SolidBrush(Color.White), 0, 0, 200, 60);
            Font font = new Font(FontFamily.GenericSerif, 48, FontStyle.Bold, GraphicsUnit.Pixel);
            Random r = new Random();
            string letters = "0123456789";

            StringBuilder sb = new StringBuilder();

            //Add random 4 numbers
            for (int x = 0; x < 4; x++)
            {
                string letter = letters.Substring(r.Next(0, letters.Length - 1), 1);
                sb.Append(letter);
                graph.DrawString(letter, font, new SolidBrush(Color.Black), x * 38, r.Next(0, 15));
            }
            code = sb.ToString();

            //Confuse the background
            Pen linePen = new Pen(new SolidBrush(Color.Black), 2);
            for (int x = 0; x < 6; x++)
                graph.DrawLine(linePen, new Point(r.Next(0, 199), r.Next(0, 59)), new Point(r.Next(0, 199), r.Next(0, 59)));
            return bitmap;
        }

    }

努吉特包:

<ItemGroup>
    <PackageReference Include="System.Drawing.Common" Version="6.0.0" />
  </ItemGroup>

控制器:

 [ApiController]
    public class VerifyCodeController : Controller
    {
        private readonly IDistributedCache _distributedCache;

        public VerifyCodeController(IDistributedCache distributedCache)
        {
            _distributedCache = distributedCache;
        }

        [Route("get_captcha")]
        public Object VerifyCode()
        {
            string code = "";
            Bitmap bitmap = VerifyCodeHelper.CreateVerifyCode(out code);
            _distributedCache.SetString("code", code);

            base.HttpContext.Session.SetString("CheckCode", code);
            MemoryStream stream = new MemoryStream();
            bitmap.Save(stream, ImageFormat.Gif);
            return File(stream.ToArray(), "image/gif");
        }
    }

startup.cs配置:(如果api调用异常,请仔细检查配置)

public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddDistributedMemoryCache();
            services.AddSession(options => {
                options.IdleTimeout = TimeSpan.FromMinutes(1);
            });
            services.AddMvc();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseAuthorization();

            app.UseStaticFiles();
            app.UseSession();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }

调用 get_captcha 路由:

enter image description here

更多自定义用法可以参考这篇文章:

.Net Core Bitmap 位图处理

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.net core第三方图形验证 的相关文章

随机推荐

  • CMake链接外部库

    首先 我是 CMake 的新手 我刚刚开始使用它 我想将外部库链接到我的项目 我使用我从中获取的代码CMake 维基 在文章末尾 这是我的 CMakeLists txt cmake minimum required VERSION 2 8
  • 如何使用检查器测试此应用实例? (没有 CoArbitrary 实例(验证 e0 [Char]))

    Checkers是一个可重用 QuickCheck 属性的库 特别是 标准类型类 如何编写一个检查器实例来测试我的验证应用实例是否有效 import Test QuickCheck import Test QuickCheck Checke
  • 如何使用 Postgresql 生成从当前日期算起的 52 周

    如何使用 postgresql 生成从当前日期算起的 52 周 例如 从 current date 即今天的日期 到 52 周 您可以使用生成系列它允许您定义范围 开始 停止 以及步骤间隔 例如 生成系列 开始日期 结束日期 stepBy
  • 如何将继承的小部件传递给整个 Material 应用程序

    所以我有一个继承的小部件 如下所示 class InheritedStateWidget extends StatefulWidget final Widget child InheritedStateWidget required thi
  • Selenium 2.53.5 httplib.BadStatusLine:''Python

    我正在尝试使用 Python 2 7 中的 Selenium 2 53 5 以在线表单自动注册序列号 该脚本已经运行了 2 个多月 但昨天我在运行它时开始收到错误 httplib BadStatusLine 有任何已知的修复方法吗 我读过前
  • 所有类方法都返回自动释放的对象吗?

    我正在重读 Mac OS X 的 Cocoa 编程 的前几章 作者指出其中之一NSCalendarDate的类方法返回一个自动释放的对象 我总是假设所有类方法都返回一个自动释放的对象 因为没有alloc涉及 是否有必须专门保留的类方法 Th
  • 当输入不匹配的字符串时,Scanf 在 while 循环中不起作用

    我正在使用一个名为的函数检查类型检查用户是否输入了有效的整数类型输入 例如 如果用户输入 15 它将打印valid15c 将打印无效 但是 如果用户仅输入字符串输入 例如ccccc 它会导致无限循环并且程序崩溃 我在下面添加了一些屏幕截图来
  • 在 $(window).load() 函数内运行 jQuery,但不在 $(document).ready 函数内运行

    我有一个现有的函数 可以使用 jQuery UI 位置插件在网页中显示图标 该函数位于 HTML 的页脚部分附近 尽管在某些地方它在头部部分输出 有人建议我在 window load 函数中加载这个 jQuery 原因是 document
  • 如何在 R 中导入 CSV 文件? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我有一个 csv文件在我的工作站中 如何在 R 中打开该文件并进行统计计算 你会使用re
  • .htaccess 重写 url 到页面或目录

    对于我的网站 我有一个指向 URL 的 RewriteRulehttp www mysite com work到 work php 文件 我还有一个名为 work 的目录 其中包含文件 例如project1 php project2 php
  • cuda 上的矢量步加法速度较慢

    我正在尝试在 CUDA C 代码上运行向量步加法函数 但对于大小为 5 000 000 的大型浮点数组 它的运行速度比我的 CPU 版本慢 下面是我所说的相关CUDA和cpu代码 define THREADS PER BLOCK 1024
  • 强制 iPhone 应用程序以编程方式重新启动?

    我试图让我的 iPhone 应用程序在按下 注销 按钮时以编程方式重新启动 有人有代码示例可以分享吗 我读到可以通过修改 main m 文件来实现 但我找不到与此相关的任何代码 任何帮助 将不胜感激 Note 尽管这已被回答为 不可能 但我
  • 在不同的 AppDomain 中加载具有依赖项的程序集

    我的目标是在两个给定文件夹之间进行缺失的依赖关系检查 想象一下以下设置 根目录 DirA A dll 根 DirB B dll B 取决于 A 因此 给定这些文件夹 我想创建一个新的 AppDomain 加载 B dll 并在该新 AppD
  • 正则表达式选项匹配多行并忽略大小写

    我有一些格式错误的 html 有时缺少 此外 它有时显示大写字母 有时显示小写字母 div class main div class subsection1 h2 div class subwithoutquote StackOverflo
  • 使用 printf() 流式传输 void 函数的输出

    我想存储函数的输出 matrix output printf 打印以下输出 矩阵 0 1 2 1 2 3 2 3 4 我想将此输出保存在文本文件中 在第一次尝试中 我修改了原来的matrix output fprintf 以便它连续使用存储
  • 写入文件时出现 UnicodeDecodeError

    我知道这是一个非常常见的错误 但这是我在尝试写入文件时第一次遇到它 我在用着networkx使用图形进行网络分析 当我尝试写入任何格式时 nx write gml G Graph gml nx write pajek G Graph net
  • 这个代码是什么? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 举个例子 这里有一行 returned Obfuscated 0D 03 1E 0B 1
  • EnterKey 有时在 IE8 中不起作用,使用 jQuery 的 keyPressed

    在我的 HTML 中 CSS edit field height 50px width 495px line height 3 6 html
  • Winforms 禁用文本框上的键盘输入但保持文本框启用

    场景是这样的 我需要禁用文本框以接受用户的输入通过键盘 但文本框应该使用类似的设备来接受输入条码读取器 我想持有一个计时器并获取两次击键之间的时间跨度 尚不清楚 但也许有一个属性或更智能的算法可以实现这一点 附注它是一个 Windows 窗
  • .net core第三方图形验证

    asp net core是否提供第三方图形验证库的示例 我正在研究这个 但我查了一些资料但没有成功 请给我一些例子 谢谢 供我参考 还有其他好的库吗 https tutexchange com how to implement captch