public override string[] GetUsersInRole(string rolename) { MembershipDataContext context = CreateDataContext(); IQueryable <User> query = from role in context.Roles join userRoles in context.UsersInRoles on role.RoleId equals userRoles.RoleId join user in context.Users on userRoles.UserId equals user.UserId where role.Name == rolename select user; string users = ""; foreach (User user in query) { users += user.UserName + ","; } if (users.Length > 0) { users = users.Substring(0, users.Length - 1); return(users.Split(',')); } return(new string[0]); }
public override string[] GetRolesForUser(string username) { MembershipDataContext context = CreateDataContext(); IQueryable <DataEntities.Role> query = from role in context.Roles //join userRoles in context.UsersInRoles on role.RoleId equals userRoles.RoleId //join user in context.Users on userRoles.UserId equals user.UserId //where user.UserName == username select role; string roles = ""; foreach (DataEntities.Role role in query) { roles += role.Name + ","; } if (roles.Length > 0) { roles = roles.Substring(0, roles.Length - 1); return(roles.Split(',')); } return(new string[0]); }
public override bool IsUserInRole(string username, string rolename) { MembershipDataContext context = CreateDataContext(); IQueryable <User> query = from role in context.Roles join userRoles in context.UsersInRoles on role.RoleId equals userRoles.RoleId join user in context.Users on userRoles.UserId equals user.UserId where role.Name == rolename && user.UserName == username select user; return(query.ToList().Count > 0); }
public override string[] GetAllRoles() { string tmpRoleNames = ""; MembershipDataContext context = CreateDataContext(); foreach (Role role in context.Roles) { tmpRoleNames += role.Name + ","; } if (tmpRoleNames.Length > 0) { // Remove trailing comma. tmpRoleNames = tmpRoleNames.Substring(0, tmpRoleNames.Length - 1); return(tmpRoleNames.Split(',')); } return(new string[0]); }
public override bool DeleteRole(string rolename, bool throwOnPopulatedRole) { if (!RoleExists(rolename)) { throw new ProviderException("Role does not exist."); } if (throwOnPopulatedRole && GetUsersInRole(rolename).Length > 0) { throw new ProviderException("Cannot delete a populated role."); } MembershipDataContext context = CreateDataContext(); context.Roles.DeleteAllOnSubmit(context.Roles.Where(r => r.Name == rolename)); context.SubmitChanges(); return(true); }
public override void RemoveUsersFromRoles(string[] usernames, string[] rolenames) { MembershipDataContext context = CreateDataContext(); context.ExecuteCommand(@" DELETE FROM UsersInRoles where exists ( select UsersInRoles.UserId from UsersInRoles as UR INNER JOIN Users ON UsersInRoles.UserId = Users.UserId INNER JOIN Roles ON UsersInRoles.RoleId = Roles.RoleId INNER JOIN UsersInRoles ON UR.UserId = UsersInRoles.UserId AND UR.RoleId = UsersInRoles.RoleId where Users.UserName IN ('') AND Roles.Name IN ('') ) ", String.Join(",", usernames), String.Join(",", rolenames)); }
/// <summary>Returns a collection of membership users for which the e-mail address field contains the specified e-mail address.</summary> /// <returns>A <see cref="T:System.Web.Security.MembershipUserCollection"></see> that contains a page of pageSize<see cref="T:System.Web.Security.MembershipUser"></see> objects beginning at the page specified by pageIndex.</returns> /// <param name="totalRecords">The total number of matched users.</param> /// <param name="pageIndex">The index of the page of results to return. pageIndex is zero-based.</param> /// <param name="emailToMatch">The e-mail address to search for.</param> /// <param name="pageSize">The size of the page of results to return.</param> /// <exception cref="T:System.ArgumentException">emailToMatch is longer than 256 characters.- or -pageIndex is less than zero.- or -pageSize is less than one.- or -pageIndex multiplied by pageSize plus pageSize minus one exceeds <see cref="F:System.Int32.MaxValue"></see>.</exception> public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords) { // // Calculate the first and last records // int firstUserIndex = pageIndex * pageSize; int lastUserIndex = ((pageIndex * pageSize) + pageSize) - 1; if (pageIndex < 0) { throw new ArgumentException(Properties.Resources.PageIndex_bad, "pageIndex"); } if (pageSize < 1) { throw new ArgumentException(Properties.Resources.PageSize_bad, "pageSize"); } if (lastUserIndex > 0x7fffffff) { throw new ArgumentException(Properties.Resources.PageIndex_PageSize_bad, "pageIndex and pageSize"); } // // Retrieve a users collection // MembershipDataContext membership = new MembershipDataContext(connectionString); System.Collections.Generic.IList <User> users = membership.Users.Where(us => us.Email == emailToMatch).ToList(); totalRecords = users.Count; // // Enumerate the Membership.User and convert to MembershipUserCollection // MembershipUserCollection list = new MembershipUserCollection(); for (int idx = firstUserIndex; idx <= lastUserIndex; idx++) { list.Add(new VivinaMembershipUser(users[idx])); } return(list); }
public override void CreateRole(string rolename) { if (rolename.Contains(",")) { throw new ArgumentException("Role names cannot contain commas."); } if (RoleExists(rolename)) { throw new ProviderException("Role name already exists."); } Role role = new Role(); role.Name = rolename; role.LastUpdatedDate = DateTime.Now; role.ApplicationId = Configuration.Application.Current.ApplicationId; MembershipDataContext context = CreateDataContext(); context.Roles.InsertOnSubmit(role); context.SubmitChanges(); }
public ClientsManager(MembershipDataContext db, ISecretHasher hasher) { this.db = db; this.hasher = hasher; }
public override bool RoleExists(string rolename) { MembershipDataContext context = CreateDataContext(); return(context.Roles.Where(role => role.Name == rolename).FirstOrDefault() != null); }