public IUserIdentity GetUserFromAccessToken(Guid token) { UserLoginSession userLoginSession = GetUserSessionFromToken(token); MakeSureTokenHasntExpiredYet(userLoginSession); return(new LoggedInUserIdentity(userLoginSession)); }
/// <summary> /// Create new session during login /// </summary> string IUserManager.CreateSession(CreateNewSession SessionModel) { var found = SessionModel; if (found != null) { //Context.UserLoginSessions.Where(p => p.UserId == model.UserId).ToList().ForEach(p => { p.SessionExpired = true; }); Context.UserLoginSessions.Where(p => p.UserId == SessionModel.UserID).ToList().ForEach(p => { p.SessionExpired = true; p.DeviceToken = null; p.LoggedOutTime = DateTime.UtcNow; p.IsActive = false; }); //Context.UserLoginSessions.Where(p => p.UniqueDeviceId == SessionModel.UniqueDeviceId).ToList().ForEach(p => { p.SessionExpired = true; p.DeviceToken = null; p.LoggedOutTime = DateTime.UtcNow; p.IsActive = false; }); Context.SaveChanges(); var session = new UserLoginSession() { LoggedInTime = DateTime.Now, SessionExpired = false, UserId = found.UserID, UserLoginSessionID = Guid.NewGuid(), UniqueDeviceId = SessionModel.UniqueDeviceId, DeviceToken = SessionModel.DeviceToken, DeviceType = SessionModel.DeviceType, LastActivityTime = DateTime.UtcNow, IsActive = true }; Context.UserLoginSessions.Add(session); Context.SaveChanges(); return(session.UserLoginSessionID.ToString()); } else { return(string.Empty); } }
public ActionResult Login(LoginModel model) { if (ModelState.IsValid) { var dao = new LoginDao(); var result = dao.Login(model.UserName, Encryptor.MD5Hash(model.PassWord)); if (result == "Success") { var user = dao.GetUserByID(model.UserName); var userSession = new UserLoginSession(); userSession.UserName = user.Name_User; userSession.UserID = user.Id_User; Session.Add(Constant.USER_SESSION, userSession); return(RedirectToAction("Index", "Home")); } else if (result == "InCorrect") { ModelState.AddModelError("", "Tài Khoản hoặc mật khẩu không chính xác"); } else if (result == "Locked") { ModelState.AddModelError("", "Tài Khoản đã bị khóa"); } } return(View("Index")); }
public CookieContainer CreateLoginCookieContainer(UserLoginSession session) { var container = new CookieContainer(); var cookie = new Cookie("user_session", session.SessionKey, "/", "nicovideo.jp"); container.Add(new Uri("http://api.ce.nicovideo.jp"), cookie); return(container); }
void MakeSureTokenHasntExpiredYet(UserLoginSession userLoginSession) { DateTime expires = userLoginSession.Expires; DateTime now = _timeProvider.Now(); if (expires < now) { throw new TokenExpiredException(); } }
public UserLoginSession Create(User executor) { DateTime dateTime = _tokenExpirationProvider.GetExpiration(_timeProvider.Now()); Guid token = _identityGenerator.Generate(); var userSession = new UserLoginSession(token, executor, dateTime); _writeableRepository.Create(userSession); return(userSession); }
// captures the login session, sending the user data to local database // sets the app as logged in and updates the main menu public async void captureLoginSession(LoginResponse loginResponse) { var userSessionInformation = new UserLoginSession { // object to send into local database UserUid = loginResponse.Result.Result[0].UserUid, FirstName = loginResponse.Result.Result[0].FirstName, SessionId = loginResponse.LoginAttemptLog.SessionId, LoginId = loginResponse.LoginAttemptLog.LoginId, Email = loginResponse.Result.Result[0].UserEmail }; await App.Database.SaveItemAsync(userSessionInformation); // send login session to local database System.Diagnostics.Debug.WriteLine("user logged in: " + App.Database.GetLastItem().Email); App.setLoggedIn(true); MainPage mainPage = (MainPage)Navigation.NavigationStack[0]; //mainPage.updateLoginButton(); }
public ActionResult Login(LoginViewModel model) { if (ModelState.IsValid) { var dao = new UserDao(); var res = dao.Login(model.UserName, Encryptor.MD5Hash(Encryptor.EncodeTo64(model.Password)), true); if (res == 1) { var user = dao.GetUserExist(model.UserName); var userSession = new UserLoginSession(); userSession.UserName = user.UserName; userSession.UserID = user.ID; userSession.UserGroupID = user.UserGroupID; userSession.Name = user.Name; var listCredentials = dao.GetListCredential(model.UserName); Session.Add(ConstantSession.SESSION_CREDENTIALS, listCredentials); Session.Add(ConstantSession.USER_SESSION, userSession); ViewBag.UserName = ((UserLoginSession)Session[ConstantSession.USER_SESSION]).UserName; return(RedirectToAction("Index", "Default")); } else if (res == 0) { ModelState.AddModelError("", "Tài khoản không tồn tại!"); } else if (res == -1) { ModelState.AddModelError("", "Tài khoản đang tạm khóa!"); } else if (res == -2) { ModelState.AddModelError("", "Mật khẩu không đúng!"); } else if (res == -3) { ModelState.AddModelError("", "Tài khoản bạn không có quyền truy cập trang này!"); } } else { ModelState.AddModelError("", "Vui lòng nhập đầy đủ thông tin"); } return(View("Index")); }
public ActionResult Login(LoginModel loginModel) { if (ModelState.IsValid) { var userService = new UserService(); var result = userService.Login(loginModel.Username, Encryptor.MD5Hash(loginModel.Password)); if (result == 1) { var user = userService.GetUserBy(loginModel.Username); var userSession = new UserLoginSession() { UserId = user.Id, Username = user.Username }; Session.Add(Constants.USER_SESSION, userSession); return(RedirectToAction("Index", "Home")); } else if (result == 0) { ModelState.AddModelError(string.Empty, "Account not exist"); } else if (result == -1) { ModelState.AddModelError(string.Empty, "Account is locked"); } else if (result == -2) { ModelState.AddModelError(string.Empty, "Wrong password"); } else { ModelState.AddModelError(string.Empty, "Invalid Login"); } } return(View("Index")); }
public LoginModule(IPasswordEncryptor passwordEncryptor, IReadOnlyRepository readOnlyRepository, IUserSessionFactory userSessionFactory, IMenuProvider menuProvider) { Post["/login"] = _ => { var loginInfo = this.Bind <LoginRequest>(); if (loginInfo.Email == null) { throw new UserInputPropertyMissingException("Email"); } if (loginInfo.Password == null) { throw new UserInputPropertyMissingException("Password"); } EncryptedPassword encryptedPassword = passwordEncryptor.Encrypt(loginInfo.Password); try { var user = readOnlyRepository.First <UserEmailLogin>( x => x.Email == loginInfo.Email && x.EncryptedPassword == encryptedPassword.Password); if (!user.IsActive) { throw new DisableUserAccountException(); } UserLoginSession userLoginSession = userSessionFactory.Create(user); return(new SuccessfulLoginResponse <Guid>(userLoginSession.Id, user.Name, userLoginSession.Expires, menuProvider.getFeatures(userLoginSession.GetClaimsAsArray()))); } catch (ItemNotFoundException <UserEmailLogin> ) { throw new UnauthorizedAccessException("Invalid email address or password. Please try again."); } catch (DisableUserAccountException) { throw new UnauthorizedAccessException("Your account has been disabled. Please contact your administrator for help."); } }; Post["/login/facebook"] = _ => { var loginInfo = this.Bind <LoginSocialRequest>(); if (loginInfo.Email == null) { throw new UserInputPropertyMissingException("Email"); } if (loginInfo.Id == null) { throw new UserInputPropertyMissingException("Social Id"); } try { var user = readOnlyRepository.First <UserFacebookLogin>( x => x.Email == loginInfo.Email && x.FacebookId == loginInfo.Id); if (!user.IsActive) { throw new DisableUserAccountException(); } UserLoginSession userLoginSession = userSessionFactory.Create(user); return(new SuccessfulLoginResponse <Guid>(userLoginSession.Id, user.Name, userLoginSession.Expires, menuProvider.getFeatures(userLoginSession.GetClaimsAsArray()))); } catch (ItemNotFoundException <UserEmailLogin> ) { throw new UnauthorizedAccessException("Invalid facebook user, you need to register first."); } catch (DisableUserAccountException) { throw new UnauthorizedAccessException("Your account has been disabled. Please contact your administrator for help."); } }; Get["/roles"] = _ => { this.RequiresAuthentication(); return(Response.AsJson(menuProvider.getAllFeatures())); }; Post["/login/google"] = _ => { var loginInfo = this.Bind <LoginSocialRequest>(); if (loginInfo.Email == null) { throw new UserInputPropertyMissingException("Email"); } if (loginInfo.Id == null) { throw new UserInputPropertyMissingException("Social Id"); } try { var user = readOnlyRepository.First <UserGoogleLogin>( x => x.Email == loginInfo.Email && x.GoogleId == loginInfo.Id); if (!user.IsActive) { throw new DisableUserAccountException(); } UserLoginSession userLoginSession = userSessionFactory.Create(user); return(new SuccessfulLoginResponse <Guid>(userLoginSession.Id, user.Name, userLoginSession.Expires, menuProvider.getFeatures(userLoginSession.GetClaimsAsArray()))); } catch (ItemNotFoundException <UserEmailLogin> ) { throw new UnauthorizedAccessException("Invalid google user, you need to register first."); } catch (DisableUserAccountException) { throw new UnauthorizedAccessException("Your account has been disabled. Please contact your administrator for help."); } }; }
public ActionResult Login(LoginModel model) { if (ModelState.IsValid) { var username = model.UserName; var password = model.PassWord; var dao = new LoginDao(); var result = dao.Login(username, Encryptor.MD5Hash(password)); if (result == "Succeed") { var user = dao.GetUserByID(username); var userSession = new UserLoginSession { UserName = user.Name_User, UserID = user.Id_User }; Session["UserId"] = user.Id_User; Session.Add(Constant.USER_SESSION, userSession); //Farmer:1 , Trader:2 , Admin:3 // ChenLong //if (user.USER_KIND.Id_UserKind == 1) //{ // return RedirectToAction("Index", "Farmer", new { area = "Farmer" }); //} //if (user.USER_KIND.Id_UserKind == 3) //{ // return RedirectToAction("index", "User", new { area = "Admin" }); //} //return RedirectToAction("Index", "Home"); // Meow Edited if (user.USER_KIND.Id_UserKind == 1) { Session["FarmerId"] = new FarmerDAO().GetFarmerByUserID(user.Id_User).Id_Farmer; return(RedirectToAction("Index", "Farmer", new { area = "Farmer" })); } else if (user.USER_KIND.Id_UserKind == 2) { Session["TraderId"] = new TraderDAO().GetTraderByUserID(user.Id_User).Id_Trader; return(RedirectToAction("Index", "Trader")); } else if (user.USER_KIND.Id_UserKind == 3) { return(RedirectToAction("Index", "User", new { area = "Admin" })); } else { return(RedirectToAction("Index", "Home")); } } else if (result == "InCorrect") { ModelState.AddModelError("", ErrorList.LOGIN_WRONGPASS); } else if (result == "Locked") { ModelState.AddModelError("", ErrorList.LOGIN_LOCKED); } } return(View("LoginIndex")); }