AspNetCore 에서 행동 인증 을 위 한 인증 절 차 를 사용 합 니 다.

극 검증
극 검 검증 은 컴퓨터 분야 에서 자연인 과 로봇 을 구분 하 는 데 사용 되 는 간단 한 통합 방식 으로 개발 자 에 게 안전 하고 편리 한 클 라 우 드 검증 서 비 스 를 제공 하 는 것 이다.
기 존의 전통 적 인 검증 코드 와 달리 사용자 가 퍼 즐 을 완성 하 는 과정 에서 의 행위 특징 을 분석 하고 데이터 분석 을 통 해 사람 인지 기계 인지 판단 한다.사용 자 는 현란 한 영문 문자 나 한 자 를 마주 하지 않 아 도 되 고 전체 검증 과정 이 게임 처럼 재미 있어 집 니 다.
선행 효과 도

극 검 의 절차
공식 문서 주소 https://docs.geetest.com/install/deploy/server/csharp
극 검 의 검증 절 차 를 간단히 설명 하 다.
공식 사진 을 인용 하 다

•서버 에 인증 매개 변 수 를 요청 합 니 다.
•클 라 이언 트 sdk 인증 완료
•클 라 이언 트 sdk 인증 데이터 로 서버 2 차 인증 제출
netcore 에서 극 검 사 를 사용 합 니 다.
공식 sdk 를 살 펴 본 후에 별로 좋 지 않 은 것 을 발 견 했 습 니 다.극 검 절차 에 따라 netcore 에 적용 되 는 극 검 sdk 오픈 소스 주 소 를 썼 습 니 다.이미 nuget 패 키 지 를 보 내 sharpplug.geetest 를 검색 하면 됩 니 다.
사용 방식 이 매우 간단 하 니,다음은 하나의 예 를 통 해 설명 하 겠 습 니 다.
명령 dotnet new mvc 을 사용 하여 뮤 직 비디오 프로젝트 를 만 듭 니 다.
다음 사용 명령 dotnet add package sharpplug.geetest nuget 패키지 설치
startup 파일 을 열 어 Configure Services 에 geetest 서 비 스 를 설정 합 니 다.
 제 가 극 검 에서 테스트 용 id 와 key 를 신 청 했 습 니 다.직접 테스트 해서 사용 하 실 수 있 습 니 다.

public void ConfigureServices(IServiceCollection services)
{
  services.Configure<CookiePolicyOptions>(options =>
  {
    // This lambda determines whether user consent for non-essential cookies is needed for a given request.
    options.CheckConsentNeeded = context => true;
    options.MinimumSameSitePolicy = SameSiteMode.None;
  });
  // GeetestOptions   id   key
  services.AddGeetest(opt=>{
        opt.Id = "e2697c763685a34be93a7d255ee06b59";
        opt.Key = "7882a2d954106041a731f5e10038982a";
      });
  services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
검증 매개 변수 와 2 차 검증 을 완료 한 클래스 는 GeetestManager 입 니 다.주로 두 가지 방법 이 있 습 니 다.
인증 매개 변 수 를 가 져 오 는 방법 은 Register 입 니 다.주로 세 개의 매개 변수 userid(사용자 표지)client Type(클 라 이언 트 유형)과 ipaddress(클 라 이언 트 ip)가 있 습 니 다.매개 변수 에 대한 자세 한 내용 은 극 검사 문 서 를 참조 하 십시오.

Task<GeeTestRegisterResult> Register(string userId = null, string clientType = "unknown", string ipAddress = "unknown")
2 차 검증 방법 Validate 매개 변 수 는?
•오프라인 오프라인 인증 여부(인증 매개 변 수 를 가 져 오 는 데 실 패 했 을 때)
•UserId 사용자 표식
•Challenge
•Seccode
•Validate

Task<bool> Validate(GeetestValidateInput input)
홈 컨트롤 러 를 열 고 인증 파 라 메 터 를 가 져 오 는 방법 을 추가 합 니 다.GeetestManager 를 주입 하 십시오.

private readonly GeetestManager _geetestManager;
public HomeController(GeetestManager geetestManager)
{
  _geetestManager = geetestManager;
}
public async Task<GeeTestRegisterResult> GeetestRegister()
{
  return await _geetestManager.Register(clientType: "web", ipAddress: "127.0.0.1");
}
다음은 홈 컨트롤 러 에 2 차 인증 을 추가 하 겠 습 니 다.

public async Task<bool> GeetestValidate(GeetestValidateInput input)
{
  return await _geetestManager.Validate(input);
}
서버 부분 이 완료 되 었 습 니 다.index.cshtml 를 열 고 gt.js 를 참조 하 십시오.

<script type="text/javascript" src="https://static.geetest.com/static/tools/gt.js"></script>
그리고 html 요 소 를 추가 합 니 다.

<h2>Getest</h2>
<div id="geetestform">
  <input type="hidden" name="geetest_challenge" id="geetest_challenge">
  <input type="hidden" name="geetest_validate" id="geetest_validate">
  <input type="hidden" name="geetest_seccode" id="geetest_seccode">
</div>
<button class="form-control btn-default" id="validate">    </button>
극 검 사 는 초기 화 과정 이 있 습 니 다.먼저 검증 매개 변수 api 를 호출 하여 극 검 사 를 초기 화 합 니 다.

$(function() {
  $.ajax({
    url: "/home/GeetestRegister",
    type: "get",
    dataType: "json",
    success: function(data) {
      //   offline         
      offline = !data.success;
      initGeetest({
        //             SDK
        gt: data.gt,
        challenge: data.challenge,
        offline: !data.success,
        new_captcha: true,
        product: "float",
        width: "100%"
      },function(){
        //      
        captchaObj.appendTo(document.getElementById('geetestform'));
      })
    }
  });
});
이 때 실행 항목 은 이미 매우 검 증 된 인증 폼 을 볼 수 있 고 이미 검증 할 수 있 지만 버튼 을 누 르 는 이 벤트 를 추가 하여 2 차 검증 을 해 야 합 니 다.

$("#validate").click(() => {
  var validate = captchaObj.getValidate();
  if (validate === undefined || !validate) {
    alert("     ");
    return;
  }

  $.ajax({
    url: "/home/GeetestValidate",
    method:"post",
    data: {
      offline: offline,
      challenge: validate.geetest_challenge,
      validate: validate.geetest_validate,
      seccode: validate.geetest_seccode
    },
    success: function(res) {
      if (res) {
        alert("        !       ");
        captchaObj.reset();
      } else {
        alert("          !       ");
        captchaObj.reset();
      }
    }
  });
});
위 에서 말 한 것 은 편집장 이 소개 한 AspNetCore 에서 극 검 을 사용 하여 행위 인증 을 하 는 검증 절차 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기