예제 #1
0
 public ActionResult ForgotPw_step2(string Account, string Email)
 {
     if (service.AccountCheck(Account))
     {
         if (Email != "" && Account != "")
         {
             string np   = MemberMethod.GetNewPW();
             string newv = service.UpdatePassword(np, Account);
             if (newv != null)
             {
                 string     tempmail    = System.IO.File.ReadAllText(Server.MapPath(@"~/Areas/Members/Email/verification.html"));//讀取html
                 UriBuilder ValidateUrl = new UriBuilder(Request.Url)
                 {
                     Path = Url.Action("AccountOpen", "Login", new
                     {
                         AuthCode = newv
                     })
                 };
                 MemberMethod.SendEmail("Fancy忘記密碼㊙️", Email, Account, np, MemberMethod.VerificationCodeMailBody(tempmail, Account,
                                                                                                                 np, ValidateUrl.ToString().Replace("%3F", "?")));
                 return(Json("done"));
             }
         }
         return(Json("fail"));
     }
     else
     {
         return(Json("fail"));
     }
 }
예제 #2
0
        public ActionResult RegisterAdmin(RegisterAdminModel data)
        {
            string       guid  = Guid.NewGuid().ToString("N");
            AdminService admin = new AdminService();
            Photo        photo = new Photo
            {
                Photo1     = db.Photos.Find(1).Photo1,
                CreateDate = DateTime.Now
            };

            db.Photos.Add(photo);
            db.SaveChanges();
            User user = new User()
            {
                UserName         = data.UserName,
                UserPassword     = MemberMethod.HashPw(data.UserPassword, guid),
                Email            = data.Email,
                GUID             = guid,
                Phone            = data.Phone,
                RegistrationDate = DateTime.Now,
                Enabled          = true,
                PhotoID          = photo.PhotoID,
                Admin            = true,
                RegionID         = data.Region,
                VerificationCode = "",
                Address          = "",
                OauthType        = "N",
                Gender           = data.Gender.Equals("male"),
                Destination      = "."
            };
            string uid = admin.Register(user).ToString();

            return(uid != "0" ? Json(uid) : Json("Fail"));
        }
예제 #3
0
        public ActionResult GetDoneEmail(string num)
        {
            UriBuilder uriBuilder = new UriBuilder(Request.Url);
            string     imgurl     = $"{uriBuilder.Scheme}://{uriBuilder.Host}:{uriBuilder.Port}";
            string     emailbody  = num.Replace("{{imgurl}}", imgurl);

            MemberMethod.SendEmail("Fancy電子報📰", "*****@*****.**", "", "", emailbody);
            return(Json("done"));
        }
예제 #4
0
 public ActionResult Register(MemberRegisterView RegisterMember)
 {
     if (service.AccountCheck(RegisterMember.UserName) || service.EmailCheck(RegisterMember.Email))
     {
         return(Json("資料重複"));
     }
     if (MemberMethod.IsValidEmail(RegisterMember.Email) && MemberMethod.IsValidPhone(RegisterMember.Phone))
     {
         string guid  = Guid.NewGuid().ToString("N");
         Photo  photo = new Photo
         {
             Photo1     = db.Photos.Find(1).Photo1,
             CreateDate = DateTime.Now
         };
         db.Photos.Add(photo);
         db.SaveChanges();
         RegisterMember.newMember = new User()
         {
             UserName         = RegisterMember.UserName,
             UserPassword     = MemberMethod.HashPw(RegisterMember.UserPassword, guid),
             Email            = RegisterMember.Email,
             GUID             = guid,
             Phone            = RegisterMember.Phone,
             RegistrationDate = DateTime.Now,
             Enabled          = true,
             RegionID         = RegisterMember.Region,
             OauthType        = "N",
             PhotoID          = photo.PhotoID,
             Address          = RegisterMember.Address,
             Gender           = RegisterMember.Gender.Equals("male"),
             VerificationCode = String.Empty,
             Destination      = "."
         };
         if (service.Register(RegisterMember.newMember))
         {
             return(Json("成功"));
         }
         else
         {
             return(Json("失敗"));
         }
     }
     else
     {
         return(Json("資料格式不正確"));
     }
 }
예제 #5
0
 public bool AdminUserControl(int id, string NewPW, string guid, string tempmail, string ValidateUrl)
 {
     try
     {
         var user = db.Users.Find(id);
         user.UserPassword = MemberMethod.HashPw(NewPW, guid);
         user.GUID         = guid;
         db.SaveChanges();
         MemberMethod.SendEmail("使用者資料修改通知📝", user.Email, user.UserName, NewPW, MemberMethod.VerificationCodeMailBody(tempmail, user.UserName,
                                                                                                                      NewPW, ValidateUrl.Replace("%3F", "?")));
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
예제 #6
0
        public ActionResult AdminControllsPW(int id)
        {
            AdminService admin       = new AdminService();
            string       tempmail    = System.IO.File.ReadAllText(Server.MapPath(@"~/Areas/Management/Email/verification2.html"));//讀取html
            string       NewPW       = MemberMethod.GetNewPW();
            string       guid        = Guid.NewGuid().ToString("N");
            UriBuilder   ValidateUrl = new UriBuilder(Request.Url)
            {
                Path = Url.Action("Index", "Login", new { area = "Members" })
            };

            if (admin.AdminUserControl(id, NewPW, guid, tempmail, ValidateUrl.ToString()))
            {
                return(Json("Success"));
            }
            else
            {
                return(Json("Fail"));
            }
        }
예제 #7
0
        public ActionResult callback(string code, string state)
        {
            if (code != null)
            {
                Dictionary <string, string> UserData = new Dictionary <string, string>();
                switch (state.Split('-')[1])
                {
                case "LINE":
                    UserData = OAuthMethod.LineResponse(code, state);
                    break;

                case "Facebook":
                    UserData = OAuthMethod.FBResponse(code, state);
                    break;

                case "Google":
                    UserData = OAuthMethod.GoogleResponse(code, state);
                    break;

                default:
                    break;
                }
                if (service.LoginCheck(UserData["name"], UserData["ID"]) == "islogin")
                {
                    addcookie(7);
                    HttpCookie userimg = new HttpCookie("userimg")
                    {
                        Value   = UserData["picture"],
                        Expires = DateTime.Now.AddDays(7)
                    };
                    Response.Cookies.Add(userimg);
                    return(RedirectToAction("Index", "Home", new { area = "HomePage" }));
                }
                else
                {
                    string guid  = Guid.NewGuid().ToString("N");
                    Photo  photo = new Photo
                    {
                        Photo1     = Encoding.UTF8.GetBytes(UserData["picture"]),
                        CreateDate = DateTime.Now
                    };
                    db.Photos.Add(photo);
                    db.SaveChanges();
                    Models.User user = new User()
                    {
                        UserName         = UserData["name"],
                        UserPassword     = MemberMethod.HashPw(UserData["ID"], guid),
                        Email            = UserData["email"],
                        GUID             = guid,
                        Phone            = "0912345678",
                        PhotoID          = photo.PhotoID,
                        RegistrationDate = DateTime.Now,
                        Enabled          = true,
                        RegionID         = 1,
                        Address          = "",
                        OauthType        = state.Split('-')[1].Substring(0, 1),
                        VerificationCode = String.Empty,
                        Gender           = true,
                        Destination      = "."
                    };

                    if (service.Register(user))
                    {
                        addcookie(7);
                        HttpCookie userimg = new HttpCookie("userimg")
                        {
                            Value   = UserData["picture"],
                            Expires = DateTime.Now.AddDays(7)
                        };
                        Response.Cookies.Add(userimg);
                        return(RedirectToAction("Index", "Home", new { area = "HomePage" }));
                    }
                }
                return(RedirectToAction("Index", "Login", new { area = "Members" }));
            }
            else
            {
                return(View("Index"));
            }
        }