public async Task <ActionResult> LoginGoogle(CancellationToken cancellationToken) { var result = await new AuthorizationCodeMvcApp(this, new AppFlowMetadata()). AuthorizeAsync(cancellationToken); if (result.Credential == null) { return(new RedirectResult(result.RedirectUri)); } var plusService = new PlusService(new BaseClientService.Initializer { HttpClientInitializer = result.Credential, ApplicationName = "MvcLogin App" }); // Lấy thông tin cơ bản của user var me = plusService.People.Get("me").Execute(); if (me != null) { // Kiểm tra xem tk đã có trong csdl chưa qua google id var objAccountRsChecked = AccountBCL.CheckGoogleId(me.Id); if (objAccountRsChecked != null) { // Đã có trong csdl rồi // Tạo session đăng nhập thành công Session.Add(Comomconstants.USER_SESSION, objAccountRsChecked); // Tải lại trang return(RedirectToAction("Index", "Home")); } // Nếu chưa có tk, insert vào csdl đăng ký. Sau đó tạo session đăng nhập thành công // Đóng gói đối tượng var objAccount = new AccountObject() { Email = me.Emails.ElementAt(0).Value, FullName = me.Name.GivenName + " " + me.Name.FamilyName, ID_Gmail = me.Id, Avatar = me.Image.Url }; //string DisplayName = me.DisplayName; //string Provider = IdentityProvider.Google; // Insert tk xuống csdl objAccount.AccountID = Guid.NewGuid(); //objAccount.RoleId = 3; // tk thường //objAccount.ModifiedTime = DateTime.Now; new AccountBCL().Insert(objAccount); // Tạo session Session.Add(Comomconstants.USER_SESSION, objAccount); // Tải lại trang return(RedirectToAction("Index", "Home")); } return(RedirectToAction("Index", "Home")); }