public static void Logout(UserEntities entities, string userName) { UserProfile user = entities.UserProfile.FirstOrDefault(u => u.UserName == userName); if (user == null) throw new ServiceException(ResponseError.LoginInvalid); ActiveUsers activeUser = entities.ActiveUsers.FirstOrDefault(u => u.UserId == user.UserId); if (activeUser != null) { entities.ActiveUsers.Remove(activeUser); entities.SaveChanges(); } }
public static void Login(UserEntities entities, string userName, string password) { UserProfile user = entities.UserProfile.FirstOrDefault(u => u.UserName == userName); if (user == null) throw new ServiceException(ResponseError.LoginInvalid); webpages_Membership membership = entities.webpages_Membership.First(m => m.UserId == user.UserId); if (!Crypto.VerifyHashedPassword(membership.Password, password)) throw new ServiceException(ResponseError.LoginInvalid); ActiveUsers activeUser = entities.ActiveUsers.FirstOrDefault(u => u.UserId == user.UserId); if (activeUser != null) activeUser.LoginDate = DateTime.Now; else entities.ActiveUsers.Add(new ActiveUsers {UserId = user.UserId, LoginDate = DateTime.Now}); entities.SaveChanges(); }
public static void CheckActiveUsers() { try { using (var entities = new UserEntities()) { DateTime timeout = DateTime.Now.AddSeconds(-ActiveUserTimeoutSeconds); IQueryable<ActiveUsers> inactiveUsers = entities.ActiveUsers.Where(u => u.LoginDate < timeout); entities.ActiveUsers.RemoveRange(inactiveUsers); entities.SaveChanges(); } } catch (Exception ex) { ErrorSignal.FromCurrentContext().Raise(ex); } }
private static void CreateUserAndAccount(string userName, string password, UserEntities entities) { UserProfile user = entities.UserProfile.Add(new UserProfile { UserName = userName, webpages_Roles = new List<webpages_Roles> {entities.webpages_Roles.First(role => role.RoleName == "Users")} }); entities.SaveChanges(); entities.webpages_Membership.Add(new webpages_Membership { UserId = user.UserId, CreateDate = DateTime.Now, IsConfirmed = true, Password = Crypto.HashPassword(password), PasswordSalt = string.Empty, PasswordChangedDate = DateTime.Now, }); entities.SaveChanges(); }