public override string[] GetRolesForUser(string username) { string [] roles = new string[] { }; MembershipPerson user = (MembershipPerson)HttpContext.Current.Cache[username]; if (user != null) { if (user.Roles != null) { roles = user.Roles.ToArray(); } } else { using (var db = ConnectToDatabase()) { string sroles = db.SingleOrDefault <string>("SELECT u.roles from qb_users u WHERE u.id = @0", user.ProviderUserKey); if (!string.IsNullOrEmpty(sroles)) { roles = sroles.Split(new char[] { ',' }); } } } return(roles); }
// для principal public override MembershipUser GetUser(string username, bool userIsOnline) { MembershipPerson mp = null; using (var db = ConnectToDatabase()) { Person user = null; List <Person> users = db.Fetch <Person, Userdb, Person>(new PersonRelator().Map, @"SELECT u.id, u.lastname, u.firstname, u.middlename, u.isadmin, u.serverlogin, u.theme, b.conn, b.auth FROM qb_users u LEFT JOIN qb_bases b ON b.usercreate = u.id WHERE u.login = @0", username); if (users.Count > 0) { user = users[0]; mp = new MembershipPerson(this.Name, username, user.Id, true, user.LastLoginDate); mp.IsAdmin = user.IsAdmin; mp.Lastname = user.LastName; mp.Firstname = user.FirstName; mp.Middlename = user.MiddleName; mp.Theme = user.Theme; mp.Fio = user.LastName + " " + user.FirstName[0] + "."; if (!string.IsNullOrEmpty(user.MiddleName)) { mp.Fio += " " + user.MiddleName[0] + "."; } mp.Bases = user.Bases; string roles = db.SingleOrDefault <string>("SELECT u.roles from qb_users u WHERE u.id = @0", user.Id); if (!string.IsNullOrEmpty(roles)) { mp.Roles = new List <string>(roles.Split(new char[] { ',' })); } } } return(mp); }