示例#1
0
        public JsonResult SetAccessToken(string accessToken)
        {
            if (!String.IsNullOrEmpty(accessToken))
            {
                UserSettings.AccessToken    = accessToken;
                UserSettings.FacebookUserId = _facebookService.GetUserId(accessToken);
                _userService.UpdateUser(UserSettings);

                return(Json(true));
            }

            return(Json(false));
        }
        public ActionResult LogOn(LogOnViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(LogOnResult(model));
            }

            string userName = model.FacebookUserId.ToString();

            long facebookUserId = _facebookClient.GetUserId(model.AccessToken);

            if (facebookUserId == 0)
            {
                ModelState.AddModelError("AccessToken", "Invalid AccessToken");
            }

            if (facebookUserId != model.FacebookUserId)
            {
                ModelState.AddModelError("FacebookUserId", "Invalid FacebookUserId.");
            }

            if (!ModelState.IsValid)
            {
                return(LogOnResult(model));
            }

            User user = UserService.GetUser(model.FacebookUserId) ?? new User();

            user.AccessToken = model.AccessToken;

            UserService.UpdateUser(user);
            UserSettings = user;

            if (!User.Identity.IsAuthenticated)
            {
                FormsAuthentication.SetAuthCookie(userName, false);
            }
            else if (User.Identity.Name != userName)
            {
                FormsAuthentication.SignOut();
                FormsAuthentication.SetAuthCookie(userName, false);
            }

            return(LogOnResult(model));
        }
        public ActionResult LogOn(LogOnViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(LogOnResult(model));
            }

            string userName = model.FacebookUserId.ToString();

            long facebookUserId = _facebookClient.GetUserId(model.AccessToken);

            if (facebookUserId == 0)
            {
                ModelState.AddModelError("AccessToken", "Invalid AccessToken");
            }

            if (facebookUserId != model.FacebookUserId)
            {
                ModelState.AddModelError("FacebookUserId", "Invalid FacebookUserId.");
            }

            if (!ModelState.IsValid)
            {
                return(LogOnResult(model));
            }

            User user = UserService.GetUser(model.FacebookUserId) ?? new User {
                FacebookUserId = model.FacebookUserId
            };

            user.AccessToken = model.AccessToken;

            UserService.UpdateUser(user);
            UserSettings = user;

            _authenticationService.SignIn(userName);

            return(LogOnResult(model));
        }