Example #1
0
 public ViewItem(string mode, Channel channel, Music music, Member member)
 {
     this.mode = mode;
     this.num = music.Seq;
     this.URL = music.URL;
     this.ChannelID = music.ChannelID;
     this.MusicID = music.MusicID;
     this.Title = music.Title;
     this.Auth = false;
     this.Name = member.NickName;
     if (music.MemberID == member.MemberID)
     {
         this.Auth = true;
     }
     else
     {
         if (channel.CreateMemberID == member.MemberID)
         {
             this.Auth = true;
         }
     }
 }
        public JsonResult UserInfo(int MemberID)
        {
            Member member = new Member();

            using (var context = new SharedPlayerContext())
            {
                member = context.Members.Where(x => x.MemberID == MemberID).FirstOrDefault() ?? new Member();
            }

            if (member != null && member.MemberID > 0)
            {
                return Json(new
                {
                    Check = true,
                    Message = String.Empty,
                    Data = member
                });
            }
            else
            {
                return Json(new
                {
                    Check = false,
                    Message = "대상이 없습니다."
                });
            }
        }
        public ActionResult JoinCompleteProc(string Token)
        {
            if (!String.IsNullOrEmpty(Token))
            {
                string HashToken = AES256.Decrypt(Token, this.Secret, true);
                if (!String.IsNullOrEmpty(HashToken))
                {
                    MailAuth auth = new MailAuth();
                    Member member = new Member();

                    using (var context = new SharedPlayerContext())
                    {
                        auth = context.MailAuths.Where(x => x.Token.Equals(HashToken)).Where(x => x.IsComplete == false).FirstOrDefault();

                        if (auth != null && auth.AuthID > 0)
                        {
                            member = context.Members.Where(x => x.MemberID == auth.MemberID).FirstOrDefault();
                            auth.IsComplete = true;
                            auth.AcceptDate = DateTime.Now;
                            member.IsMailAuth = true;
                            member.LastUpdate = DateTime.Now;
                            context.SaveChanges();
                            return View(this);
                        }
                        else
                        {
                            return RedirectToAction("ErrorGuide", "Home", new { ErrCode = 4901 });
                        }
                    }
                }
                else
                {
                    return RedirectToAction("ErrorGuide", "Home", new { ErrCode = 4902 });
                }
            }
            else
            {
                return RedirectToAction("ErrorGuide", "Home", new { ErrCode = 4903 });
            }
        }
        public JsonResult LoginProc(string Email, string Password)
        {
            bool chk = false;
            string msg = String.Empty;

            try
            {
                Member member = new Member();
                using (var context = new SharedPlayerContext())
                {
                    member = context.Members.Where(x => x.Email.Equals(Email)).FirstOrDefault() ?? new Member();

                    if (member != null && member.MemberID > 0)
                    {
                        if (Sha512.ValidatePassword(Password, member.Password))
                        {
                            if (member.IsMailAuth)
                            {
                                LoginAuth auth = new LoginAuth();
                                auth.RegDate = DateTime.Now;
                                auth.ExpiredDate = Convert.ToDateTime(String.Format("{0} 23:59:59", DateTime.Now.ToString("yyyy-MM-dd")));
                                auth.UserBrowser = String.Format("{0} v{1}.{2}", Request.Browser.Browser, Request.Browser.MajorVersion, Request.Browser.MinorVersion);
                                auth.MemberID = member.MemberID;
                                auth.UserIP = Request.UserHostAddress;
                                auth.Token = Salt.RandomString(16);

                                int cnt = 0;
                                do
                                {
                                    auth.Token = Salt.RandomString(16);
                                    cnt = context.Auths.Where(x => x.Token.Equals(auth.Token)).Count();
                                } while (cnt > 0);

                                context.Auths.Add(auth);
                                context.SaveChanges();

                                CryptoCookie.SetCookie("Token", auth.Token);
                                chk = true;
                                msg = "";
                            }
                            else
                            {
                                chk = false;
                                msg = "메일인증이 완료되지 않았습니다.  메일을 확인해 주세요.";
                            }
                        }
                        else
                        {
                            chk = false;
                            msg = "아이디 또는 비밀번호가 일치하지 않습니다.";
                        }
                    }
                    else
                    {
                        chk = false;
                        msg = "아이디 또는 비밀번호가 일치하지 않습니다.";
                    }
                }
            }
            catch (Exception ex)
            {
                chk = false;
                msg = ex.Message;
                if (ex.InnerException != null)
                {
                    msg = ex.InnerException.Message;
                }
            }

            return Json(new {
                    Check = chk,
                    Message = msg
            });
        }
        public JsonResult JoinProc(Member member)
        {
            try
            {
                bool chk = false;
                string msg = String.Empty;

                member.RegDate = DateTime.Now;
                member.LastUpdate = DateTime.Now;
                member.IsMailAuth = false;
                member.Password = Sha512.CreateHash(member.Password);
                using (var context = new SharedPlayerContext())
                {
                    var checkList = context.Members.Where(x => x.Email.Equals(member.Email)).Count();
                    if (checkList > 0)
                    {
                        chk = false;
                        msg = "이미 사용중인 이메일 입니다.";
                    }
                    else
                    {
                        context.Members.Add(member);
                        context.SaveChanges();
                        if (member.MemberID > 0)
                        {
                            MailAuth auth = new MailAuth();
                            auth.AcceptDate = DateTime.Now;
                            auth.Email = member.Email;
                            auth.IsComplete = false;
                            auth.member = member;
                            auth.RegDate = DateTime.Now;
                            auth.Token = Salt.RandomString(16);
                            context.MailAuths.Add(auth);
                            context.SaveChanges();
                            if (auth.AuthID > 0)
                            {
                                string URL = String.Format("{0}://{1}/Member/JoinCompleteProc?Token={2}", Request.Url.Scheme, Request.Url.Host, AES256.Encrypt(auth.Token, this.Secret, true));
                                StringBuilder builder = new StringBuilder();
                                builder.Append(FileHandler.ReadFile(Server.MapPath("~/Content/MemberJoin.html"), Encoding.UTF8));
                                builder.Replace("{URL}", URL);
                                if (Mail.Send(member.Email, "[SharedPlayer.net] 회원가입 인증메일입니다.", builder.ToString()))
                                {
                                    chk = true;
                                }
                                else
                                {
                                    chk = false;
                                    msg = "인증메일 발송이 실패하였습니다. 잠시 후 다시 시도해 주세요.";
                                }
                            }
                            else
                            {
                                chk = false;
                                msg = "인증메일 발송이 실패하였습니다. 잠시 후 다시 시도해 주세요.";
                            }
                        }
                    }
                }

                return Json(new
                {
                    Check = chk,
                    Message = msg
                });
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null)
                {
                    return Json(new
                    {
                        Check = false,
                        Message = ex.InnerException.InnerException.Message
                    });
                }
                else
                {
                    return Json(new
                    {
                        Check = false,
                        Message = "2. " + ex.Message
                    });
                }
            }
        }