public ActionResult DangNhapTaiKhoan(TaiKhoanDangNhap tkdn) { tkB = new TaiKhoanBusiness(); if (ModelState.IsValid) { //Kiếm tra mail tồn tại List <TaiKhoan> dsTK = tkB.TaiKhoanDaTonTai(tkdn.Email); if (dsTK.Count > 0)//Nếu tài khoản đã tồn tại { string hashedPassword; using (MD5 md5hash = MD5.Create()) { hashedPassword = GetMd5Hash(md5hash, tkdn.MatKhau); } if (hashedPassword == dsTK[0].MatKhau)// So sánh mật khẩu, nếu đúng thì gán Session { qB = new QuyenBusiness(); int quyenID = dsTK[0].IdQuyen; string tenQuyen = qB.Quyen_GetNameById(quyenID); Session["Id"] = dsTK[0].IdTaiKhoan; Session["Email"] = dsTK[0].Email; Session["Ten"] = dsTK[0].Ten; Session["Quyen"] = tenQuyen; Session.Timeout = 20; return(RedirectToAction("Index", "Home")); } else//Nếu sai mật khẩu { ModelState.AddModelError("LoiDangNhap", "Mật khẩu không đúng"); ViewBag.tab = "DangNhap"; return(View("DangNhap_DangKyTaiKhoan")); } } else//Nếu Email không đúng => tài khoản không tồn tại => báo lôi { ModelState.AddModelError("LoiDangNhap", "Địa chỉ Email không đúng"); } } //Active tab ViewBag.tab = "DangNhap"; return(View("DangNhap_DangKyTaiKhoan")); }
public ActionResult FacebookCallback(string code) { //var url= Request.Url; //Nếu code = null <==> Người dùng Cancel if (code == null) { return(RedirectToAction("DangNhapTaiKhoan", "Home")); } //Nếu người dùng đồng ý <=> code !=null var fb = new FacebookClient(); dynamic result = fb.Post("oauth/access_token", new { client_id = ConfigurationManager.AppSettings["FbAppId"], client_secret = ConfigurationManager.AppSettings["FbAppSecret"], redirect_uri = "http://localhost:61543/Home/FacebookCallback", code = code }); //Session["AccessToken"] = result.access_token; //Gán Access Token fb.AccessToken = result.access_token; //Các thông tin lấy về dynamic me = fb.Get("me?fields=first_name,middle_name,last_name,id,email"); string email = me.email; string firstName = me.first_name; string middleName = me.middle_name; string lastName = me.last_name; tkB = new TaiKhoanBusiness(); int id; qB = new QuyenBusiness(); //Lấy tài khoản trùng với email List <TaiKhoan> dsTaiKhoan = tkB.TaiKhoanDaTonTai(email); string tenQuyen = ""; //Nếu Email tài khoản chưa tồn tại thì tạo mới tài khoản if (dsTaiKhoan.Count != 1) { TaiKhoan tk = new TaiKhoan(); tk.Email = email; tk.HoTenLot = middleName + " " + lastName; tk.Ten = firstName; tk.MatKhau = null; tk.IdQuyen = 1; tenQuyen = qB.Quyen_GetNameById(1); id = tkB.TaiKhoan_InsertOutputId(tk); } else //Nếu Email đã tồn tại { id = dsTaiKhoan[0].IdTaiKhoan; email = dsTaiKhoan[0].Email; firstName = dsTaiKhoan[0].Ten; tenQuyen = qB.Quyen_GetNameById(dsTaiKhoan[0].IdQuyen); } Session["Id"] = id; Session["Email"] = email; Session["Ten"] = firstName; Session["Quyen"] = tenQuyen; return(RedirectToAction("Index", "Home")); }