如何在核心MVC中实现reCaptcha"v2"ASP.NET?



我想添加验证码,第二个版本,而不是另一个版本,我希望它是在ASP。. NET Core,而不是MVC,我搜索了很多,没有找到解决方案。我希望得到帮助

我有一个登录控制器:
public IActionResult Login([Bind("Username , Password")] User userLogin)
{
const string id = "id";
var auth = _context.Users.Where(x => x.Username == userLogin.Username && 
x.Password == userLogin.Password).SingleOrDefault();
var x = _context.Users.Where(x => x.Username == userLogin.Username && x.Password 
== userLogin.Password).Select(i => i.UserId).FirstOrDefault();
if (auth != null)
{
// 1 > admin
// 2 > Accountant
// 3 > customer
switch (auth.RoleId)
{
case 1: // admin
HttpContext.Session.SetInt32(id, (int)x);
return RedirectToAction("Index", "Home");
case 2:
HttpContext.Session.SetInt32(id, (int)x);
return RedirectToAction("AccountantDashboard", "Home");
case 3:
HttpContext.Session.SetInt32(id, (int)x);
return RedirectToAction("Home", "Home");
}
}
return View();
}

和另一个用于视图(头部和主体)

<form asp-action="Login" enctype="multipart/form-data">
<div class="input-group">
<label asp-for="Username" class="input--style-2" placeholder="username"></label>
<input asp-for="Username" class="input--style-2" />
<span asp-validation-for="Username" class="text-danger"></span>
</div>
<div class="input-group">
<label asp-for="Password" class="input--style-2" placeholder="Password"></label>
<input asp-for="Password" type="password" class="input--style-2" />
<span asp-validation-for="Password" class="text-danger"></span>
</div>
<div class="p-t-30">
<button class="btn btn--radius btn--green" type="submit" value="Create">Login</button>
</div>
<div style="position: relative ; left: 350px ; bottom: -50px">
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Home">Or back to home page</a>
</div>
</form>

据我所知,reCaptcha "它是基于js构建的,我们可以直接在HTML页面中使用它。

我们可以这样使用它,首先把下面的代码在你的视图中,它是用来放置g-recaptcha,它包含一个回调方法,如果这个方法被调用,这意味着用户已经通过验证,你可以使用JQuery或javascript显示按钮。

<div class="g-recaptcha" data-callback="recaptcha_callback" data-sitekey="xxxxx"></div> 

:

<script type="text/javascript">
function recaptcha_callback(){
$('#login).show();
}
</script>

更多细节,可以参考这篇文章。

最新更新