protected void LogIn(object sender, EventArgs e) { if (IsValid) { using (WebUsersController wuc = new WebUsersController()) { if (Membership.ValidateUser(Email.Text, Password.Text)) { FormsAuthentication.RedirectFromLoginPage(Membership.GetUser(Email.Text).ProviderUserKey.ToString(), RememberMe.Checked); } else { AlertBox.SetStatus("The email address and password entered do not match.", UI.AlertBoxType.Error); } } } }
// The return type can be changed to IEnumerable, however to support // paging and sorting, the following parameters must be added: // int maximumRows // int startRowIndex // out int totalRowCount // string sortByExpression public IQueryable gvAllUsers_GetData() { using (WebUsersController wuc = new WebUsersController()) using(WebUserInfosController wuic = new WebUserInfosController()) { var allInfo = wuic.Get().Select(i=> new { UserID = i.UserID, FirstName = i.FName, LastName = i.LName }); var allUsers = wuc.Get(); var joined = allUsers.GroupJoin(allInfo, i => i.UserID, j => j.UserID, (i, j) => new { Login = i, Info = j.FirstOrDefault() }); return joined.Select(i => new UserResult() { Email = i.Login.Email, FirstName = i.Info == null ? null : i.Info.FirstName, LastName = i.Info == null ? null : i.Info.LastName, UserID = i.Login.UserID }).OrderBy(i => i.LastName).ThenBy(i => i.FirstName).AsQueryable<UserResult>(); } }
private List<MyLink> GetPermissionedLinksFromDB() { using(UserManagement um = new UserManagement()) using (WebUsersController wuc = new WebUsersController()) using(LinksController lc = new LinksController()) { FetchStrategy fetch = new FetchStrategy(); fetch.LoadWith<Link>(i => i.LinkGroup); fetch.LoadWith<Link>(i => i.Glyphicon); fetch.LoadWith<LinkGroup>(i => i.Glyphicon); fetch.LoadWith<Link>(i => i.LinkPermissions); IEnumerable<ScopeAssignment> assignedScopes = um.ScopeAssignments.Where(i => i.UserID == CurrentUser.UserID); // if user has even one allowed permission, then we need to add it. need to do it by permission then by role var allowedByPermission = assignedScopes.Where(i => i.PermissionID.HasValue && !i.IsDeny).Select(i => i.PermissionID.Value); var allowedByRole = assignedScopes.Where(i => i.RoleID.HasValue && !i.IsDeny).Select(i => i.Role).SelectMany(i => i.Permissions).Select(i => i.PermissionID); List<int> allowed = allowedByPermission.Union(allowedByRole).Distinct().ToList(); // now get the links var links = lc.GetWhere(i => i.LinkPermissions.Count() == 0 || i.LinkPermissions.Where(j => !j.IsDeny && allowed.Contains(j.PermissionID)).Count() > 0, fetch); var noGroups = links.Where(i => !i.LinkGroupID.HasValue) .OrderBy(i => i.SortOrder) .Select(i => new MyLink() { IsGroup = false, Glyphicon = i.GlyphiconID.HasValue ? i.Glyphicon.Glyphicon1 : null, Name = i.LinkName, CurrentModulePattern = i.CurrentModulePattern, LinkURL = i.LinkURL, Tooltip = i.LinkTitle, ShowInMobileNav = i.ShowInMobileNav }).ToList(); var groups = links.Where(i => i.LinkGroupID.HasValue) .GroupBy(i => i.LinkGroupID) .OrderBy(i => i.First().LinkGroup.SortOrder) .Select(i => new MyLink() { IsGroup = true, Name = i.First().LinkGroup.LinkGroupName, Glyphicon = i.First().LinkGroup.GlyphiconID.HasValue ? i.First().LinkGroup.Glyphicon.Glyphicon1 : null, CurrentModulePattern = i.First().LinkGroup.CurrentModulePattern, Tooltip = i.First().LinkGroup.LinkGroupName, ShowInMobileNav = i.First().LinkGroup.ShowInMobileNav, MyLinks = i.OrderBy(j => j.SortOrder).Select(j => new MyLink() { Glyphicon = j.GlyphiconID.HasValue ? j.Glyphicon.Glyphicon1 : null, IsGroup = false, Name = j.LinkName, CurrentModulePattern = j.CurrentModulePattern, Tooltip = j.LinkTitle, LinkURL = j.LinkURL, ShowInMobileNav = j.ShowInMobileNav }).ToList() }).ToList(); List<MyLink> myLinks = new List<MyLink>(); myLinks.AddRange(noGroups); myLinks.AddRange(groups); return myLinks; } }
public static WebUser GetCurrentWebUser() { int userID; if (!HttpContext.Current.User.Identity.IsAuthenticated || !int.TryParse(HttpContext.Current.User.Identity.Name, out userID)) { //throw new Exception("User not authenticated"); return null; } WebUser user = HttpContext.Current.Session["CurrentWebUser"] as WebUser; if (user != null && user.UserID == userID) { return user; } else { using (WebUsersController wuc = new WebUsersController()) { HttpContext.Current.Session["CurrentWebUser"] = wuc.GetWhere(i => i.UserID == userID).First(); return HttpContext.Current.Session["CurrentWebUser"] as WebUser; } } }
private WebUser GetUser(Func<WebUser, bool> query) { WebUser user; using (WebUsersController swuc = new WebUsersController()) { user = swuc.GetWhere(query).FirstOrDefault(); } if (user == null) { return null; //throw new ProviderException("The requested user could not be found."); } return user; }
private MembershipUser GetUser(Func<WebUser, bool> search, bool userIsOnline) { using (WebUsersController swuc = new WebUsersController()) { MembershipUser membershipUser = null; WebUser user; try { user = swuc.GetWhere(search).FirstOrDefault(); } catch (ProviderException) { user = null; } if (user != null) { membershipUser = GetMembershipUserFromPersistedEntity(user); if (userIsOnline) { // modify online //user.LastActivityDate = DateTime.Now; //context.SaveChanges(); } } return membershipUser; } }
public override string GetUserNameByEmail(string email) { using (WebUsersController wuc = new WebUsersController()) { WebUser user = wuc.GetWhere(u => u.Email == email).FirstOrDefault(); return (user == null) ? "" : user.Email; } }
public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords) { using (WebUsersController wuc = new WebUsersController()) { var webUsers = wuc.GetWhere(i => i.Email == usernameToMatch).Select(i => GetMembershipUserFromPersistedEntity(i)); MembershipUserCollection collection = new MembershipUserCollection(); foreach (MembershipUser user in webUsers) { collection.Add(user); } totalRecords = collection.Count; return collection; } }
public override int GetNumberOfUsersOnline() { TimeSpan onlineSpan = new TimeSpan(0, Membership.UserIsOnlineTimeWindow, 0); DateTime compareTime = DateTime.Now.ToUniversalTime().Subtract(onlineSpan); using (WebUsersController swuc = new WebUsersController()) { //return swuc.GetWhere(MatchApplication()).Where(u => u.LastActivityDate > compareTime).Distinct().Count(); } throw new NotImplementedException("Get number of online users not currently implemented"); }
public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords) { MembershipUserCollection users = new MembershipUserCollection(); // Retrieve all users for the current application name from the database using (WebUsersController swuc = new WebUsersController()) { IEnumerable<WebUser> usersInApplication = swuc.Get(); totalRecords = usersInApplication.Distinct().Count(); if (totalRecords <= 0) { return users; } IEnumerable<WebUser> userEntities = usersInApplication.OrderBy(u => u.Email).Skip(pageIndex * pageSize).Take(pageSize); foreach (WebUser user in userEntities) { users.Add(GetMembershipUserFromPersistedEntity(user)); } return users; } }
public override bool DeleteUser(string username, bool deleteAllRelatedData) { try { using (WebUsersController wuc = new WebUsersController()) { WebUser user; try { user = wuc.GetWhere(u => u.Email == username).FirstOrDefault(); if (user == null) { return false; } } catch (ProviderException) { return false; } wuc.Delete(user.UserID); // Need to delete all user related data (Mark as historical) return true; } } catch { return false; } }
public override string ResetPassword(string username, string answer) { if (!EnablePasswordReset) { throw new NotSupportedException("Password reset is not enabled."); } if (answer == null && RequiresQuestionAndAnswer) { throw new ProviderException("Password answer required for password reset."); } string newPassword = Membership.GeneratePassword(NEWPASSWORDLENGTH, MinRequiredNonAlphanumericCharacters); ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, newPassword, true); OnValidatingPassword(args); if (args.Cancel) { if (args.FailureInformation != null) { throw args.FailureInformation; } throw new MembershipPasswordException("Reset password canceled due to password validation failure."); } using (WebUsersController swuc = new WebUsersController()) { WebUser user = swuc.GetWhere(u => u.Email == username).FirstOrDefault(); try { user.Password = EncodePassword(newPassword); swuc.Update(user); return newPassword; } catch(Exception ex) { throw new MembershipPasswordException("User not found, or user is locked out. Password not Reset."); } } }
public override bool ChangePassword(string username, string oldPassword, string newPassword) { // Check if user is authenticated if (!ValidateUser(username, oldPassword)) { return false; } // Notify that password is going to change ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, newPassword, true); OnValidatingPassword(args); if (args.Cancel) { if (args.FailureInformation != null) { throw args.FailureInformation; } throw new MembershipPasswordException("Change password canceled due to new password validation failure."); } using (WebUsersController swuc = new WebUsersController()) { WebUser user = swuc.GetWhere(u => u.Email == username).FirstOrDefault(); user.Password = EncodePassword(newPassword); try { swuc.Update(user); return true; } catch(Exception ex) { return false; } } }
public override string GetPassword(string username, string answer) { if (!EnablePasswordRetrieval) { throw new ProviderException("Password Retrieval Not Enabled."); } if (PasswordFormat == MembershipPasswordFormat.Hashed) { throw new ProviderException("Cannot retrieve Hashed passwords."); } string password = string.Empty; using (WebUsersController wuc = new WebUsersController()) { WebUser user = wuc.GetWhere(swu => swu.Email.Equals(username)).FirstOrDefault(); if (PasswordFormat == MembershipPasswordFormat.Encrypted) { password = UnEncodePassword(user.Password); } } return password; }
public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { // Validate email/password ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, password, true); OnValidatingPassword(args); if (args.Cancel) { status = MembershipCreateStatus.InvalidPassword; return null; } if (RequiresUniqueEmail && GetUserNameByEmail(email) != string.Empty) { status = MembershipCreateStatus.DuplicateEmail; return null; } // Check whether user with passed username already exists MembershipUser user; try { user = GetUser(username, false); } catch (ProviderException) { user = null; } if (user == null) { DateTime creationDate = DateTime.Now.ToUniversalTime(); if (providerUserKey != null) { if (!(providerUserKey is Int32)) { status = MembershipCreateStatus.InvalidProviderUserKey; return null; } } // Need to add roles WebUser newUser = new WebUser { Email = username, Password = EncodePassword(password) }; try { WebUser response; using (WebUsersController wuc = new WebUsersController()) { response = wuc.AddNew(newUser); } status = (response != null) ? MembershipCreateStatus.Success : MembershipCreateStatus.ProviderError; } catch (Exception) { status = MembershipCreateStatus.UserRejected; } return GetUser(username, false); } status = MembershipCreateStatus.DuplicateUserName; return null; }