/// <summary> /// Validates the Google Recaptcha Version 2. /// </summary> public void Validate() { IRecaptcha <RecaptchaV2Result> recaptcha = new RecaptchaV2( new RecaptchaV2Data() { Secret = SecretKey }); RecaptchaV2Result result = null; try { result = recaptcha.Verify(); if (result == null) { ErrorMessage = "Oops! Unknown error!"; return; } IsValid = result.Success; if (IsValid) { return; } if (result.ErrorCodes != null && result.ErrorCodes.Length > 0) { ErrorMessage = String.Empty; foreach (var errorCode in result.ErrorCodes) { switch (errorCode) { case "missing-input-secret": ErrorMessage += "The secret parameter is missing - "; break; case "invalid-input-secret": ErrorMessage += "The secret parameter is invalid or malformed - "; break; case "missing-input-response": ErrorMessage += "The response parameter is missing - "; break; case "invalid-input-response": ErrorMessage += "The response parameter is invalid or malformed - "; break; } ErrorMessage = ErrorMessage.TrimEnd(' ', '-'); } } else { ErrorMessage = "Oops! Unknown error!"; } } catch (Exception) { ErrorMessage = "Oops! Unknown error!"; } }
public async Task <ActionResult> Register(RegisterViewModel model) { // Init the recaptcha processor to start verifying... IRecaptcha <RecaptchaV2Result> recaptcha = new RecaptchaV2( new RecaptchaV2Data() { Secret = "6LfIkTIUAAAAAK9xuY373hcC-WL92yXNZtCtlEXG" }); // Verify the captcha var resultReCaptcha = recaptcha.Verify(); if (resultReCaptcha.Success) // Success!!! { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, Address = model.Address, PostCode = model.PostCode }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { // Adding the user to a role using (var context = new ApplicationDbContext()) { var roleStore = new RoleStore <IdentityRole>(context); var roleManager = new RoleManager <IdentityRole>(roleStore); var userStore = new UserStore <ApplicationUser>(context); var userManager = new UserManager <ApplicationUser>(userStore); var roleResult = userManager.AddToRole(user.Id, RoleNames.ROLE_USER); } await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Index", "Home")); } AddErrors(result); } } // If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult Index(FormCollection form) { IRecaptcha<RecaptchaV2Result> recaptcha = new RecaptchaV2(new RecaptchaV2Data() { Secret = ConfigurationManager.AppSettings["CaptchaSecretKey"] }); var result = recaptcha.Verify(); if (result.Success) { //TODO: write code here } return View(); }
public ActionResult Index(FormCollection form) { IRecaptcha<RecaptchaV2Result> recaptcha = new RecaptchaV2(new RecaptchaV2Data(){ Secret = "6LdQaxATAAAAACWOZDLB5C06RfW_0qhXJYagQ9iF" }); // Verify the captcha var result = recaptcha.Verify(); if (result.Success) // Success!!! { //TODO: write code here } return View(); }
public ActionResult Index(FormCollection form) { IRecaptcha <RecaptchaV2Result> recaptcha = new RecaptchaV2(new RecaptchaV2Data() { Secret = ConfigurationManager.AppSettings["CaptchaSecretKey"] }); var result = recaptcha.Verify(); if (result.Success) { //TODO: write code here } return(View()); }
public ActionResult feedback(managerModel mm, FormCollection form) { headdisplay(); IRecaptcha <RecaptchaV2Result> recaptcha = new RecaptchaV2(new RecaptchaV2Data() { Secret = "6LfBriQTAAAAANGF9w6CrSl_8yksdNy9dNi7Xp9R" }); // Verify the captcha var result = recaptcha.Verify(); if (mm.FBName_p != "" && mm.FBcontent_p != "" && mm.FBmail_p != null && mm.FBName_p != null && mm.FBcontent_p != null && result.Success == true) { int count = 0; try { string sqlstr = @"INSERT INTO localsql.feedback( idfeedback,Name,content,phone,mail )VALUES( @idfeedback,@Name,@content,@phone,@mail)", sqlstrselect = @"SELECT idfeedback FROM localsql.feedback"; count = selectCount(count, sqlstrselect); MySqlConnection con = new MySqlConnection(sqlconStr); MySqlCommand link; con.Open(); link = con.CreateCommand(); link.CommandText = sqlstr; link.Parameters.Clear(); link.Parameters.AddWithValue("idfeedback", count + 1); link.Parameters.AddWithValue("Name", mm.FBName_p); link.Parameters.AddWithValue("content", mm.FBcontent_p); link.Parameters.AddWithValue("phone", mm.FBphone_p); link.Parameters.AddWithValue("mail", mm.FBmail_p); link.ExecuteNonQuery(); con.Close(); } catch (Exception ex) { } TempData["message"] = "送出成功"; return(RedirectToAction("index")); } else { ViewBag.msg = "0"; return(View()); } }
public ActionResult PostIndex(FormCollection form) { IRecaptcha <RecaptchaV2Result> recaptcha = new RecaptchaV2(new RecaptchaV2Data { Secret = "6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe" }); var result = recaptcha.Verify(); if (result.Success) { //TODO: do the thing } return(View()); }
public ActionResult Index(FormCollection form) { IRecaptcha <RecaptchaV2Result> recaptcha = new RecaptchaV2(new RecaptchaV2Data() { Secret = "6LdQaxATAAAAACWOZDLB5C06RfW_0qhXJYagQ9iF" }); // Verify the captcha var result = recaptcha.Verify(); if (result.Success) // Success!!! { //TODO: write code here } return(View()); }
public ActionResult Index(FormCollection form) { IRecaptcha <RecaptchaV2Result> recaptcha = new RecaptchaV2( new RecaptchaV2Data() { Secret = "6LfPUR0UAAAAAFLjTwT0uRag5mZb0tCjvF7R5wVT" }); // Verify the captcha var result = recaptcha.Verify(); if (result.Success) // Success!!! { ViewBag.Success = "驗證成功"; } else { ViewBag.Success = "驗證失敗"; } return(View()); }
public JsonResult ValidRecaptcha(FormCollection form) { PublicMethodRepository.GoogleValidIsSuccess = false; var content = new JsonResult(); bool isValid = true; string msg = string.Empty; string secret = PublicMethodRepository.GetConfigAppSetting("reCAPTCHASecret"); if (secret == null) { isValid = false; msg = "無法取得Google金鑰"; } else { IRecaptcha <RecaptchaV2Result> recaptcha = new RecaptchaV2(new RecaptchaV2Data() { Secret = secret }); var result = recaptcha.Verify(); if (!result.Success) { isValid = false; } } PublicMethodRepository.GoogleValidIsSuccess = isValid; content.Data = JsonConvert.SerializeObject(new { success = isValid, msg = msg }, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); content.ContentType = "application/json"; content.JsonRequestBehavior = JsonRequestBehavior.AllowGet; return(content); }
public async Task <ActionResult> Login(LoginViewModel modal, string returnUrl, string EmailLoginCode, FormCollection form) { IRecaptcha <RecaptchaV2Result> recaptcha = new RecaptchaV2(new RecaptchaV2Data() { Secret = "6LfqzzcUAAAAAHgafe6oixzCCTIZOzvbPbGta8fT" }); RecaptchaV2Result recaptchaResult = recaptcha.Verify(); string dontcheckgrc = form["dontcheckgrc"]; if (!(dontcheckgrc == "on" || recaptchaResult.Success) || !ModelState.IsValid) //if (!ModelState.IsValid) { return(View(modal)); } //Email Login Code //UserTwoFactor utf = db.UserTwoFactor.Where(c=>c.UserId== form.Email).FirstOrDefault(); //if (utf != null&& utf.EmailLogin.HasValue&&utf.EmailLogin.Value) //{ // if (Session["EmailLoginCode"] == null) // return View(form); // if (Session["EmailLoginCode"].ToString() != EmailLoginCode) // return View(form); //} //var result = await SignInManager.PasswordSignInAsync(form.Email, form.Password, form.RememberMe, shouldLockout: false); var result = await SignInManager.PasswordSignInAsync(modal.Email, modal.Password, modal.RememberMe, shouldLockout : true); //Email Confirm // If it was a successful login if (result == SignInStatus.Success || result == SignInStatus.RequiresVerification) { // check that their email address is confirmed: var user = await UserManager.FindByNameAsync(modal.Email); //Email認證 if (!await UserManager.IsEmailConfirmedAsync(user.Id)) { // sign them out! AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie); TempData["UserId"] = user.Id; return(RedirectToAction("UnconfirmedEmail", "Account", new { area = "" })); } // reset their login } switch (result) { case SignInStatus.Success: List <UserNewsUrls> testUrls = new List <UserNewsUrls>(); UserNewsUrls testUrl1 = new UserNewsUrls { UserNewsTitle = "管理", UserNewsUrl = Url.Action("Index", "Manage", new { area = "" }), UserNewsCSS = "btn btn-warning" }; UserNewsUrls testUrl2 = new UserNewsUrls { UserNewsTitle = "通知", UserNewsUrl = Url.Action("UserMessage", "Account", new { area = "" }), UserNewsCSS = "btn btn-success" }; UserNewsUrls testUrl3 = new UserNewsUrls { UserNewsTitle = "測試登入", UserNewsUrl = Url.Action("TestSuccessLogin", "Account", new { area = "" }), UserNewsCSS = "btn btn-info" }; testUrls.Add(testUrl1); testUrls.Add(testUrl2); testUrls.Add(testUrl3); //NewsHub.SendMessageToAll("使用者登入", string.Format("{0}已登入", modal.Email),Url.Action("Index","Manage"),testUrls); NewsHub.SendMessageToUser(true, "*****@*****.**", "使用者登入", string.Format("{0}已登入", modal.Email), Url.Action("Index", "Manage", new { area = "" }), testUrls); //NewsHub.SendMessageToUser(modal.Email, "*****@*****.**", "使用者登入", string.Format("{0}已登入", modal.Email), ""); return(RedirectToLocal(returnUrl)); case SignInStatus.RequiresVerification: return(RedirectToAction("SendCode", "Account", new { area = "", ReturnUrl = returnUrl, RememberMe = modal.RememberMe })); case SignInStatus.Failure: default: ModelState.AddModelError("", "登入嘗試失試。"); if (db.AspNetUsers.Where(n => n.UserName == modal.Email).ToList().Count() == 1) { LoginErrorEmail.SendEmail(modal.Email, Request.Browser); } return(View(modal)); } }
public async Task <ActionResult> Register(RegisterViewModel modal, FormCollection form) { int CityId = 0; int DistrictId = 0; int RoadId = 0; string LnStr = form["AddressRLn"]; string AlyStr = form["AddressRAly"]; string NoStr = form["AddressRNo"]; string FStr = form["AddressRF"]; string RmStr = form["AddressRRm"]; string dontcheckgrc = form["dontcheckgrc"]; string dontcheckemail = form["dontcheckemail"]; string registerEmployee = form["registerEmployee"]; bool checkAddress = false; if (int.TryParse(form["selectRCity"], out CityId)) { if (int.TryParse(form["selectRDistrict"], out DistrictId)) { if (int.TryParse(form["selectRRoad"], out RoadId)) { checkAddress = true; } } } IRecaptcha <RecaptchaV2Result> recaptcha = new RecaptchaV2(new RecaptchaV2Data() { Secret = "6LfqzzcUAAAAAHgafe6oixzCCTIZOzvbPbGta8fT" }); RecaptchaV2Result recaptchaResult = recaptcha.Verify(); if ((dontcheckgrc == "on" || recaptchaResult.Success) && ModelState.IsValid && checkAddress) //if (ModelState.IsValid) { string CityName = db.AddressCity.Where(n => n.Id == CityId).Select(n => n.Name).FirstOrDefault(); string DistrictName = db.AddressDistrict.Where(n => n.Id == DistrictId).Select(n => n.Name).FirstOrDefault(); string RoadName = db.AddressRoad.Where(n => n.Id == RoadId).Select(n => n.Name).FirstOrDefault(); string ResidenceAddress = CityName + " " + DistrictName + " " + RoadName; if (LnStr != string.Empty) { ResidenceAddress += " " + LnStr + "巷"; } if (AlyStr != string.Empty) { ResidenceAddress += " " + AlyStr + "弄"; } if (NoStr != string.Empty) { ResidenceAddress += " " + NoStr + "號"; } if (FStr != string.Empty) { ResidenceAddress += " " + FStr + "樓"; } if (RmStr != string.Empty) { ResidenceAddress += " " + RmStr + "室"; } var user = new ApplicationUser { UserName = modal.Email , Email = modal.Email , Name = modal.Name , ResidenceAddress = ResidenceAddress , IdentityCardNumber = modal.IdentityCardNumber , BirthDay = modal.BirthDay }; var result = await UserManager.CreateAsync(user, modal.Password); if (result.Succeeded) { AspNetUsers anuFixData = db.AspNetUsers.Where(n => n.UserName == user.UserName).First(); UserResidenceAddress ura = new UserResidenceAddress { Id = anuFixData.Id, AddressCityId = CityId, AddressDistrictId = DistrictId, AddressRoadId = RoadId, AddressLn = LnStr, AddressAly = AlyStr, AddressNo = NoStr, AddressF = FStr, AddressRm = RmStr }; db.UserResidenceAddress.Add(ura); if (registerEmployee == "on") { IsEmployee nie = new IsEmployee { UserId = modal.Email, RegisterDate = DateTime.Now }; db.IsEmployee.Add(nie); } db.SaveChanges(); //await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); //return RedirectToAction("TestSuccessLogin", "Account"); if (dontcheckemail == "on") { anuFixData.EmailConfirmed = true; db.SaveChanges(); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(RedirectToAction("Index", "Default", new { area = "" })); } var callbackUrl = await generateConfirmAccountEmail(user.Id); #if DEBUG TempData["ViewBagLink"] = callbackUrl; #endif ViewBag.Message = "請完成帳號的電子郵件認證,方可登入。"; return(View("Info")); } } return(View(modal)); }