在AspNetCore中如何使用极验做行为认证

  介绍

这篇文章主要介绍了在AspNetCore中如何使用极验做行为认证,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

先上效果图

在AspNetCore中如何使用极验做行为认证

<强>极验的流程

极验官方文档地址https://docs.geetest.com/install/deploy/server/csharp

简单说明一下极验的验证流程

引用官方的图片

在AspNetCore中如何使用极验做行为认证

?向服务器发送请求获取验证参数
?客户端sdk完成验证
?由客户端sdk验证数据提交服务器二次验证

<强>在netcore中使用极验

在我查看官方的sdk过后,发现不是特别好用,根据极验的流程写了一套适用于netcore的极验sdk开源地址已经发了nuget包搜索sharpplug。这些年即可

使用方式很简单、下面通过一个例子来进行讲解

使用命令新mvc代码 <代码> dotnet创建一个mvc项目

下一步使用命令<代码> dotnet添加包sharpplug.geetest 安装nuget包

打开启动文件在ConfigureServices中配置geet服务

,我在极验申请了一个测试用的id和关键大家可以直接测试使用

public  void  ConfigureServices (IServiceCollection 服务)   {   services.Configure<才能;CookiePolicyOptions> (options =比;   {才能   ,,,//,却;能够lambda  determines  whether  user  consent  for  non-essential  cookies  is  needed  for  a  given 请求。   ,,,options.CheckConsentNeeded =, context =祝辞,真的;   ,,,options.MinimumSameSitePolicy =, SameSiteMode.None;   ,,});//才能,GeetestOptions中配置id 与关键   services.AddGeetest才能(选择=祝辞{   ,,,,,,,opt.Id =,“e2697c763685a34be93a7d255ee06b59";   ,,,,,,,opt.Key =,“7882 a2d954106041a731f5e10038982a";   ,,,,,});   services.AddMvc才能().SetCompatibilityVersion (CompatibilityVersion.Version_2_1);   }

完成获取验证参数与二次验证的类是GeetestManager,它主要有两个方法

获取验证参数方法是登记,它主要有三个参数userid(用户标识)clientType(客户端类型)与ipaddress(客户端ip)关于参数的细节大家可以去参阅极验文档

Task,注册(string  userId =, null,, string  clientType =,“unknown",, string  ipAddress =,“unknown")

二次验证方法验证参数为

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

Task,验证(GeetestValidateInput 输入)

下面打开HomeController添加获取验证参数方法,记得注入GeetestManager

private  readonly  GeetestManager  _geetestManager;   public  HomeController (GeetestManager  geetestManager)   {   时间=_geetestManager 才能;geetestManager;   }   public  async  Task

下面在HomeController中加入二次验证

public  async  Task, GeetestValidate (GeetestValidateInput 输入)   {   return 才能;await  _geetestManager.Validate(输入);   }

服务端部分已经完成,下面打开index.cshtml先引用gt。js

& lt; script 类型=拔谋?javascript", https://www.yisu.com/zixun/src=" https://static.geetest.com/static/tools/gt.js ">

然后添加html元素

& lt; h3> Getest   & lt; div  id=癵eetestform"祝辞   & lt;才能input 类型=癶idden", name=癵eetest_challenge", id=癵eetest_challenge"比;   & lt;才能input 类型=癶idden", name=癵eetest_validate", id=癵eetest_validate"比;   & lt;才能input 类型=癶idden", name=癵eetest_seccode", id=癵eetest_seccode"比;   & lt;/div>   & lt; button 类=癴orm-control  btn-default", id=皏alidate"在点我验证& lt;/button>

极验有一个初始化的过程,先调用获取验证参数api进行初始化极验

$(()函数,{   . ajax({美元才能   ,,,url:,“/home/GeetestRegister",   ,,,类型:,“get",   ,,,数据类型:,“json"   成功,,,:,功能(数据),{   ,,,,,//,使用离线判断是否是离线验证   ,,,,,offline =, ! data.success;   ,,,,,initGeetest ({   ,,,,,,,//,以下配置参数来自服务端,SDK   ,,,,,,,gt:, data.gt,   ,,,,,,,挑战:,data.challenge,   ,,,,,,,离线:,! data.success,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

在AspNetCore中如何使用极验做行为认证