手机版

AspNetCore中使用极性验证的行为认证的验证过程

时间:2021-08-29 来源:互联网 编辑:宝哥软件园 浏览:

极坐标验证

极限验证是计算机领域用于区分自然人和机器人的一种云验证服务,通过简单的集成为开发者提供安全便捷的云验证服务。

与以往传统的验证码不同,Extreme Test通过分析用户在完成谜题过程中的行为特征来判断是人还是机器。用户不用面对眼花缭乱的英文字符或中文字符,整个验证过程变得像游戏一样有趣。

首先,应用渲染

极限测试的过程

极限测试官方文件地址https://docs.geetest.com/install/deploy/server/csharp

简要说明极坐标测试的验证过程

引用官方图片

向服务器发送请求以获取验证参数。客户端sdk完成验证,客户端sdk验证的数据提交给服务器进行二次验证

在网络核心中使用极性测试

我查了一下官方的sdk,发现不是特别好用。按照Extreme Test的流程,我为netcore的Extreme Test sdk写了一组开源地址,我已经发了一个nuget包来搜索sharp plug . geet

使用方法很简单,下面举个例子来说明

使用命令dotnet new mvc创建一个mvc项目

使用命令dotnet add package sharp plug . getest在下一步安装nuget package

打开启动文件,在配置服务中配置geetest服务

我在极限测试中申请了id和密钥进行测试,大家都可以直接测试

public void ConfigureServices(IServiceCollection services){ services。configurecookiespolicy options(options={//此lambda确定给定请求是否需要用户同意非必需的cookie。选项。checkconsentneedd=context=true;选项。minimumsemesitepolicy=SameSiteMode。无;});geetestoptions和keyservices.addgeetest中的配置id(opt={ opt . id=' e 2697 c 763685 a 34 be 93 a7 d 255 ee 06 b 59 ';选择。key=' 7882 a 2d 954106041 a 731 F5 e 10038982 a ';});服务。AddMvc()。SetCompatibilityVersion(兼容性版本。version _ 2 _ 1);} GeetestManager是完成获取验证参数和二次验证的类。主要有两种方法

获取验证参数的方法是Register,主要有三个参数:userid(用户标识)、clientType(客户端类型)和ipaddress(客户端ip)。有关参数的详细信息,您可以参考验证文档

Taskgeetregisterresult寄存器(字符串userid=null,字符串clienttype='未知',字符串ipaddress='未知')辅助验证方法的Validate参数为

离线是否离线验证(获取验证参数失败时)。用户标识用户标识挑战密码验证

在任务bool validate(getestvalidate输入)下,打开HomeController添加获取验证参数的方法,记得注入GeetestManager

private readonly GeTestmanager _ GeTestmanager;public HomeController(GeeTestmanager GeeTestmanager){ _ GeeTestmanager=GeeTestmanager;} public async TaskGeeTestRegisterResultGeeTestRegister(){ return await _ GeeTestmanager。注册(clientType: 'web ',ipaddress : ' 127 . 0 . 0 . 1 ');}在下面的HomeController中添加二级验证

public async Taskbool GeeTestvalidate(GeeTestvalidate input){ return await _ GeeTestmanager。验证(输入);}服务器部分已完成。打开下面的index.cshtml,先参考gt.js

脚本类型=' text/JavaScript ' src=' http:https://static.geetest.com/static/tools/gt.js'/script,然后添加html元素

H2 getest/H2 div id=' getestform '输入类型='hidden '名称=' getest _ challenge ' id=' getest _ challenge '输入类型='hidden '名称=' getest _ validate ' id=' getest _ vali Date '输入类型=' hidden '名称=' getest _ seccode ' id=' getest _ seccode '/div button class=' form-control BTN-default ' id=' validate '点自验证/button polar test有一个初始化过程,调用获取验证参数的api初始化polar

$ (function () {$)。Ajax({ URL : '/home/getestregister ',type:' get ',datatype3360' JSON ',success3360函数(data){//使用offline判断离线验证是否离线=!data.successinitgetest({//以下配置参数来自SDK GT:data.gt,challenge:data.challenge,offline3360!Data.success,new _ captcha: true,product:' float ',width :' 100%'},function(){//初始化元素captchobj . appendto(document . getelementbyid(' gee test form ')));}) } });});此时,极端验证的验证形式可以通过运行项目来查看和验证,但需要添加一个按钮点击事件进行二次验证

$('#validate ')。单击(()={ var validate=captchobj . getvalidate();if (validate===undefined ||!Validate) {alert('请验证');返回;} $.Ajax({ URL : '/home/Getestvalidate ',method:'post ',data: { offline: offline,challenge : validate . Getest _ challenge,Validate:Validate。geetest _ validate,seccode3360Validate。geetest _ seccode },success 3360 function(RES){ if(RES){ alert('二次验证状态成功!重置身份验证状态’);captchobj . reset();} else {alert('返回的二次验证状态失败!重置身份验证状态’);captchobj . reset();} } });});以上是边肖介绍的AspNetCore中使用polar测试进行行为认证的验证过程。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!

版权声明:AspNetCore中使用极性验证的行为认证的验证过程是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。