예제 #1
0
        public bool LdapDangNhap(string username, string pass)
        {
            try
            {
                var ldapUrl = System.Configuration.ConfigurationManager.AppSettings["DirectoryPath"];
                var domain  = System.Configuration.ConfigurationManager.AppSettings["DirectoryDomain"];

                string domUser = domain + @"\" + username;

                DirectoryEntry    entry    = new DirectoryEntry(ldapUrl, domUser, pass, AuthenticationTypes.Secure);
                DirectorySearcher searcher = new DirectorySearcher(entry);
                searcher.Filter      = "(&(objectClass=user)(SAMAccountName=" + username + "))";
                searcher.SearchScope = SearchScope.Subtree;
                searcher.PropertiesToLoad.Add("givenName");
                searcher.PropertiesToLoad.Add("mail");
                SearchResult result = searcher.FindOne();

                if (result != null)
                {
                    string   sHoTen     = GetProperty(result, "givenName");
                    string   sMail      = GetProperty(result, "mail");
                    NhanVien ktNhanVien = db.NhanViens.SingleOrDefault(n => n.TenDangNhap == username);
                    if (ktNhanVien == null)
                    {
                        NhanVien themNV = new NhanVien();
                        themNV.HoTen       = sHoTen;
                        themNV.TenDangNhap = username;
                        themNV.Email       = sMail;
                        themNV.MatKhau     = null;
                        themNV.KichHoat    = true;
                        themNV.Ldap        = true;
                        db.NhanViens.Add(themNV);

                        // them ldap vao nhom default
                        IEnumerable <NhomTV> layNhom = db.NhomTVs.Where(n => n.MacDinh == true);
                        foreach (var item in layNhom)
                        {
                            Nhom_Nhanvien themN_NV = new Nhom_Nhanvien();
                            themN_NV.IdNhanVien = themNV.Id;
                            themN_NV.MaNhom     = item.MaNhom;
                            db.Nhom_Nhanvien.Add(themN_NV);
                        }

                        db.SaveChanges();
                        Session["DangNhap"] = themNV;
                    }
                    else
                    {
                        Session["DangNhap"] = ktNhanVien;
                    }
                    return(true);
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
            return(false);
        }
예제 #2
0
        public ActionResult ThemMoi(NhanVien nv, FormCollection c, string[] Nhom)
        {
            if (KiemTraSession() == true)
            {
                return(RedirectToAction("DangNhap", "QuanTri"));
            }

            ViewBag.NhomTV = db.NhomTVs.Where(n => n.MaNhom != 1).OrderBy(n => n.TenNhom);

            int ktTonTai = db.NhanViens.Where(n => n.TenDangNhap == nv.TenDangNhap).Count();

            if (ktTonTai != 0)
            {
                ViewBag.ktTenDangNhap = "Tên đăng nhập đã tồn tại";
                return(View());
            }
            if (!string.IsNullOrEmpty(nv.Email))
            {
                ktTonTai = db.NhanViens.Where(n => n.Email.ToLower().Trim() == nv.Email.ToLower().Trim()).Count();
                if (ktTonTai != 0)
                {
                    ViewBag.ktEmail = "Email đã tồn tại";
                    return(View());
                }
            }

            if (ModelState.IsValid)
            {
                if (nv.Ldap == null)
                {
                    nv.Ldap = false;
                }

                nv.MatKhau = Tools.md5(nv.MatKhau);
                if (!string.IsNullOrEmpty(c["NgaySinhs"]))
                {
                    nv.NgaySinh = DateTime.ParseExact(c["NgaySinhs"].ToString(), "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                }
                db.NhanViens.Add(nv);

                // them tai khoan vao nhom
                if (Nhom != null && Nhom.Length != 0)
                {
                    for (int i = 0; i < Nhom.Length; i++)
                    {
                        Nhom_Nhanvien themN_NV = new Nhom_Nhanvien();
                        themN_NV.IdNhanVien = nv.Id;
                        themN_NV.MaNhom     = int.Parse(Nhom[i]);
                        db.Nhom_Nhanvien.Add(themN_NV);
                    }
                }

                db.SaveChanges();
                TempData["thongbao"] = "<script> $('#div-pthongbao').text('Tạo tài khoản thành công !'); $('#div-thongbao').show(); $('#div-thongbao').fadeOut(5000);</script>";
            }
            return(View());
        }
예제 #3
0
        public ActionResult ChinhSua(NhomTV nhom, string[] TaiKhoan, string[] Quyen, string[] idFAQ)
        {
            if (KiemTraSession() == true)
            {
                return(RedirectToAction("DangNhap", "QuanTri"));
            }

            if (ModelState.IsValid)
            {
                if (nhom.MacDinh == null)
                {
                    nhom.MacDinh = false;
                }

                db.Entry(nhom).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();

                //xoa du lieu cu
                IEnumerable <Nhom_Nhanvien> xoaN_NV = db.Nhom_Nhanvien.Where(n => n.MaNhom == nhom.MaNhom);
                db.Nhom_Nhanvien.RemoveRange(xoaN_NV);
                IEnumerable <Nhom_Quyen> xoaN_Q = db.Nhom_Quyen.Where(n => n.MaNhom == nhom.MaNhom);
                db.Nhom_Quyen.RemoveRange(xoaN_Q);
                IEnumerable <Nhom_FAQ> xoaN_FAQ = db.Nhom_FAQ.Where(n => n.MaNhom == nhom.MaNhom);
                db.Nhom_FAQ.RemoveRange(xoaN_FAQ);
                db.SaveChanges();

                if (TaiKhoan != null && TaiKhoan.Length != 0) // them nhom_nhanvien
                {
                    for (int i = 0; i < TaiKhoan.Length; i++)
                    {
                        string   sTaiKhoan = TaiKhoan[i];
                        NhanVien layNV     = db.NhanViens.SingleOrDefault(n => n.TenDangNhap == sTaiKhoan);
                        int      iKT       = db.Nhom_Nhanvien.Where(n => n.MaNhom == nhom.MaNhom && n.IdNhanVien == layNV.Id).Count();
                        if (iKT == 0)
                        {
                            Nhom_Nhanvien themN_NV = new Nhom_Nhanvien();
                            themN_NV.MaNhom     = nhom.MaNhom;
                            themN_NV.IdNhanVien = layNV.Id;
                            db.Nhom_Nhanvien.Add(themN_NV);
                        }
                    }
                }

                if (Quyen != null && Quyen.Length != 0) // them nhom_quyen
                {
                    for (int i = 0; i < Quyen.Length; i++)
                    {
                        string sQuyen = Quyen[i];
                        int    iKT    = db.Nhom_Quyen.Where(n => n.MaNhom == nhom.MaNhom && n.MaQuyen == sQuyen).Count();
                        if (iKT == 0)
                        {
                            Nhom_Quyen themN_Q = new Nhom_Quyen();
                            themN_Q.MaNhom  = nhom.MaNhom;
                            themN_Q.MaQuyen = Quyen[i];
                            db.Nhom_Quyen.Add(themN_Q);
                        }
                    }
                }

                if (idFAQ != null && idFAQ.Length != 0) // them nhom_faq
                {
                    for (int i = 0; i < idFAQ.Length; i++)
                    {
                        int iidFaq = int.Parse(idFAQ[i]);
                        int iKT    = db.Nhom_FAQ.Where(n => n.MaNhom == nhom.MaNhom && n.MaFAQ == iidFaq).Count();
                        if (iKT == 0)
                        {
                            Nhom_FAQ themN_FAQ = new Nhom_FAQ();
                            themN_FAQ.MaNhom = nhom.MaNhom;
                            themN_FAQ.MaFAQ  = iidFaq;
                            db.Nhom_FAQ.Add(themN_FAQ);
                        }
                    }
                }
                db.SaveChanges();

                TempData["thongbao"] = "<script> $('#div-pthongbao').text('Cập nhật thành công !'); $('#div-thongbao').show(); $('#div-thongbao').fadeOut(5000);</script>";
            }
            return(RedirectToAction("DanhSach"));
        }
예제 #4
0
        public ActionResult ChinhSua(NhanVien nv, FormCollection c, string[] Nhom)
        {
            if (KiemTraSession() == true)
            {
                return(RedirectToAction("DangNhap", "QuanTri"));
            }

            ViewBag.NhomTV  = db.NhomTVs.Where(n => n.MaNhom != 1).OrderBy(n => n.TenNhom);
            ViewBag.Nhom_NV = db.Nhom_Nhanvien.Where(n => n.IdNhanVien == nv.Id);

            NhanVien nvcu = db.NhanViens.AsNoTracking().SingleOrDefault(n => n.TenDangNhap == nv.TenDangNhap);

            if (nv.MatKhau != null) // xu ly mat khau
            {
                nv.MatKhau = Tools.md5(nv.MatKhau);
            }
            else
            {
                nv.MatKhau = nvcu.MatKhau;
            }

            if (nv.Ldap == null)
            {
                nv.Ldap = false;
            }

            if (!string.IsNullOrEmpty(nv.Email))
            {
                int ktTonTai = db.NhanViens.Where(n => n.Email.ToLower().Trim() == nv.Email.ToLower().Trim()).Count();
                if (ktTonTai != 0 && nv.Email.ToLower().Trim() != nvcu.Email.ToLower().Trim()) // kiem tra email co ton tai
                {
                    ViewBag.ktEmail = "Email đã tồn tại";
                    return(View(nv));
                }
            }

            if (ModelState.IsValid)
            {
                if (!string.IsNullOrEmpty(c["NgaySinhs"]))
                {
                    nv.NgaySinh = DateTime.ParseExact(c["NgaySinhs"].ToString(), "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                }
                db.Entry(nv).State = System.Data.Entity.EntityState.Modified;

                IEnumerable <Nhom_Nhanvien> xoaN_NV = db.Nhom_Nhanvien.Where(n => n.IdNhanVien == nv.Id);
                db.Nhom_Nhanvien.RemoveRange(xoaN_NV);

                db.SaveChanges();

                // them tai khoan vao nhom
                if (Nhom != null && Nhom.Length != 0)
                {
                    for (int i = 0; i < Nhom.Length; i++)
                    {
                        Nhom_Nhanvien themN_NV = new Nhom_Nhanvien();
                        themN_NV.IdNhanVien = nv.Id;
                        themN_NV.MaNhom     = int.Parse(Nhom[i]);
                        db.Nhom_Nhanvien.Add(themN_NV);
                    }
                }
                db.SaveChanges();
                TempData["thongbao"] = "<script> $('#div-pthongbao').text('Cập nhật tài khoản thành công !'); $('#div-thongbao').show(); $('#div-thongbao').fadeOut(5000);</script>";
            }
            return(View(nv));
        }