Esempio n. 1
0
        /// <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!";
            }
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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());
        }
Esempio n. 6
0
        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());
            }
        }
Esempio n. 7
0
        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());
        }
Esempio n. 8
0
        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());
        }
Esempio n. 9
0
        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));
        }