Example #1
0
        public ActionResult Login(LoginViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }

                MemberOperation memberDataOperation = new MemberOperation();
                RoleOperation   roleDataOperation   = new RoleOperation();

                if (memberDataOperation.CheckUserData(model))
                {
                    LoginUser user = new LoginUser();
                    //登入會員的角色編號
                    var tmpRole = from c in memberDataOperation.Get()
                                  where model.Email == c.Email
                                  select c.Role_No;

                    foreach (var item in tmpRole)
                    {
                        if (item.Equals(1))
                        {
                            user.Identity = Identity.User;
                        }
                        else if (item.Equals(2))
                        {
                            user.Identity = Identity.Admin;
                        }
                    }
                    //登入會員的名稱
                    user.UserName = memberDataOperation.user.Name;
                    //登入會員的帳號
                    user.UserEmail = memberDataOperation.user.Email.ToString();

                    FormsAuthManager authManager = new FormsAuthManager();
                    authManager.SignIn(user);
                    switch (user.Identity)
                    {
                    case Identity.User:
                        return(RedirectToAction("Index", "Home"));

                    case Identity.Admin:
                        return(RedirectToAction("Index", "Admin"));

                    default:
                        return(RedirectToAction("Index", "Home"));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "無效的帳號或密碼。");
                    return(View());
                }
            }
            catch (Exception ex)
            {
                TempData["Msg"] = ex.ToString();
                return(View());
            }
        }