コード例 #1
0
        private static void ValidateRecaptcha(ProxyAuthRequestResult par, GuestChallengeModel model, HttpRequestBase request)
        {
            var     recapResponse = request.Form["g-recaptcha-response"];
            JObject args          = null;

            if (!String.IsNullOrEmpty(par.Arguments))
            {
                args = (JObject)JsonConvert.DeserializeObject(par.Arguments);
            }

            var useRecaptcha = false;

            if (args != null && args["UseRecaptcha"] != null && bool.TryParse(args["UseRecaptcha"].Value <string>(), out useRecaptcha) && useRecaptcha)
            {
                if (String.IsNullOrWhiteSpace(recapResponse))
                {
                    model.ShowRecaptcha = GoogleReCaptcha.CanAccess();
                }
                else
                {
                    var gr = new GoogleReCaptcha();
                    if (!gr.IsValid(recapResponse, request.UserHostAddress))
                    {
                        model.ErrorMessages.Add(Constants.i18n("invalidRecaptcha"));
                        model.ShowRecaptcha = GoogleReCaptcha.CanAccess();
                    }
                }
            }
        }
コード例 #2
0
 public GoogleRecaptchaService(IOptions <AppSettings> appSettings,
                               IOptionsSnapshot <GoogleReCaptcha> gReCaptchaAccessor,
                               IOptionsSnapshot <GoogleReCaptchaDev> gReCaptchaDevAccessor)
 {
     _appSettings           = appSettings.Value;
     _gReCaptchaAccessor    = gReCaptchaAccessor.Value;
     _gReCaptchaDevAccessor = gReCaptchaDevAccessor.Value;
 }
コード例 #3
0
ファイル: LoginController.cs プロジェクト: v181698y/ITicket-1
        public ActionResult Login(string Email, string Password, FormCollection form)
        {
            //string admin = "admin";
            //int time = (DateTime.Now.Month * DateTime.Now.Day) + 2;
            //string adminPassword = "******" + time.ToString();

            //CAdmin ad = new CAdmin();
            //ad.Admin = admin;
            //ad.AdminPassword = adminPassword;
            //List<CAdmin> AdMember = new List<CAdmin>();
            //AdMember.Add(ad);
            //if (Email==admin && Password==adminPassword)
            //{
            //    Session[CDictionary.SK_Admin_Logined_Member] = AdMember;
            //    return RedirectToAction("ActivityList", "Activity");
            //}

            var isVerify = new GoogleReCaptcha().GetCaptchaResponse(form["g-recaptcha-response"]);

            if (isVerify)
            {
                var member = db.Member
                             .Where(m => m.Email == Email && m.Password == Password)
                             .FirstOrDefault();

                //若member為null,表示會員未註冊
                if (member == null)
                {
                    ViewBag.Message = "帳密錯誤,登入失敗";
                    return(View());
                }
                else if (member.MemberRoleId == 1)
                {
                    ViewBag.Message = "尚未進行信箱驗證,請至信箱進行驗證作業";
                    return(View());
                }

                //if (member.MemberRole.MemberRoleName == "管理者")
                //{
                //    Session[CDictionary.SK_Admin_Logined_Member] = member;
                //}
                //else
                //{
                Session[CDictionary.SK_Logined_Member] = member;
                //}
            }
            else
            {
                ViewBag.Message = "請勾選驗證機器人";
                return(View());
            }

            return(RedirectToAction("Index", "Home"));
        }
コード例 #4
0
        public ActionResult Customer(FormCollection form)
        {
            var isVerify = new GoogleReCaptcha()
                           .GetCaptchaResponse(form["g-recaptcha-response"]);

            if (isVerify)
            {
                //TODO: Do something
            }

            return(View());
        }
コード例 #5
0
ファイル: HomeController.cs プロジェクト: msit11125/GoogleApi
        public ActionResult Custom(FormCollection form)
        {
            var isVerify = new GoogleReCaptcha()
                           .GetCaptchaResponse(form["g-recaptcha-response"]);

            if (isVerify)
            {
                ViewBag.Success = "驗證成功";
            }
            else
            {
                ViewBag.Success = "驗證失敗";
            }
            return(View());
        }
コード例 #6
0
        public ActionResult Register([Bind(Include = "Email,Password,Name,Gender,Address,Phone,ValidationMessage")] RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var isVerify = new GoogleReCaptcha().GetCaptchaResponse(model.ValidationMessage);
                if (isVerify)
                {
                    model.IsIntegrated           = false;
                    model.IsThirdParty           = false;
                    model.SocialPatform          = "None";
                    model.IsProvidedByThirdParty = false;
                    model.IsProvidedByUser       = true;
                    _accountService.CreateAccount(model);

                    Dictionary <string, string> kvp = new Dictionary <string, string>
                    {
                        { "accountname", model.Name },
                        { "name", model.Name },
                        { "password", $"{model.Password.Substring(0,1)}{string.Join(string.Empty,Enumerable.Repeat("*",model.Password.Length-2))}{model.Password.Substring(model.Password.Length-1)}" },
                        { "datetime", DateTime.UtcNow.AddHours(8).ToString().Split(' ')[0] },
                        { "accountid", _accountService.GetAccountId(model.Name).ToString() },
                        { "isSocialActivation", "false" },
                        { "url", WebConfigurationManager.AppSettings["WebsiteUrl"] }
                    };

                    Email.SendMail("會員驗證信 - 此信件由系統自動發送,請勿直接回覆 from [Gmail]", model.Email, Email.Template.EmailActivation, kvp);

                    _checkoutService.CreateCouponDetail(model.Name, CouponNum.新朋友享好禮);

                    return(Json(new { response = "操作成立", status = 1 }));
                }
                else
                {
                    return(Json(new { response = "驗證失敗", status = 0 }));
                }
            }

            // 如果執行到這裡,發生某項失敗,則重新顯示表單
            return(View(model));
        }
コード例 #7
0
        public ActionResult Login([Bind(Include = "AccountName,Password,RememberMe,ValidationMessage")] LoginViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new { response = "fail", status = false }));
            }
            else
            {
                var isVerify = new GoogleReCaptcha().GetCaptchaResponse(model.ValidationMessage);

                if (isVerify)
                {
                    if (_accountService.IsActivatedEmail(model.AccountName))
                    {
                        if (_accountService.IsLoginValid(model.AccountName, model.Password))
                        {
                            var cookie = Helpers.SetCookie(model.AccountName, model.RememberMe);

                            Response.Cookies.Add(cookie);

                            return(Json(new { response = "登入成功", status = 1 }));
                        }
                        else
                        {
                            return(Json(new { response = "無此人", status = 0 }));
                        }
                    }
                    else
                    {
                        return(Json(new { response = "信箱尚未驗證成功", status = 0 }));
                    }
                }
                else
                {
                    return(Json(new { response = "驗證失敗", status = 0 }));
                }
            }
        }
コード例 #8
0
        public ActionResult Register([Bind(Include = "Email,Password,Name,Gender,Address,Phone,ValidationMessage")] RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var isVerify = new GoogleReCaptcha().GetCaptchaResponse(model.ValidationMessage);
                if (isVerify)
                {
                    model.IsIntegrated           = false;
                    model.IsThirdParty           = false;
                    model.SocialPatform          = "None";
                    model.IsProvidedByThirdParty = false;
                    model.IsProvidedByUser       = true;
                    _accountService.CreateAccount(model);

                    Dictionary <string, string> kvp = new Dictionary <string, string>
                    {
                        { "accountname", model.Name },
                        { "name", model.Name },
                        { "password", model.Password },
                        { "datetime", DateTime.UtcNow.AddHours(8).ToString().Split(' ')[0] },
                        { "accountid", _accountService.GetAccountId(model.Name).ToString() },
                        { "isSocialActivation", "false" }
                    };

                    Email.SendMail("會員驗證信 - 此信件由系統自動發送,請勿直接回覆 from [Gmail]", model.Email, Email.Template.EmailActivation, kvp);

                    return(Json(new { response = "操作成立", status = 1 }));
                }
                else
                {
                    return(Json(new { response = "驗證失敗", status = 0 }));
                }
            }

            // 如果執行到這裡,發生某項失敗,則重新顯示表單
            return(View(model));
        }
コード例 #9
0
 public AppSettingForTagHelper(GoogleReCaptcha googleReCaptcha)
 {
     GoogleReCaptcha = googleReCaptcha;
 }