/// <summary> /// Returns an TUser given the user's id. /// </summary> /// <param name="userId">The user's id.</param> /// <returns></returns> public TUser GetUserById(string userId, ConverIdFromStringDelegate <TKey> stringToId) { TUser user = null; string commandText = "SELECT * FROM " + _tableName + " WHERE Id = @id"; Dictionary <string, object> parameters = new Dictionary <string, object>() { { "@id", userId } }; var rows = _database.Query(commandText, parameters); if (rows != null && rows.Count == 1) { var row = rows[0]; user = (TUser)Activator.CreateInstance(typeof(TUser)); user.Id = stringToId(row["id"]); user.UserName = row["username"]; user.PasswordHash = string.IsNullOrEmpty(row["passwordhash"]) ? null : row["passwordhash"]; user.SecurityStamp = string.IsNullOrEmpty(row["securitystamp"]) ? null : row["securitystamp"]; user.Email = string.IsNullOrEmpty(row["email"]) ? null : row["email"]; user.EmailConfirmed = row["emailconfirmed"] == "True"; } return(user); }
/// <summary> /// Returns a list of user's roles. /// </summary> /// <param name="userId">The user's id.</param> /// <returns></returns> public List <string> RoleNamesForUserId(string userId) { var roles = new List <string>(); string commandText = "SELECT AspNetRoles.Name FROM AspNetUsers, AspNetRoles, AspNetUserRoles "; commandText += "WHERE AspNetUsers.Id = AspNetUserRoles.UserId AND AspNetUserRoles.RoleId = AspNetRoles.Id"; Dictionary <string, object> parameters = new Dictionary <string, object>(); parameters.Add("@userId", userId); var rows = _database.Query(commandText, parameters); foreach (var row in rows) { roles.Add(row["name"]); } return(roles); }
public ClaimsIdentity FindByRoleId(string roleId) { ClaimsIdentity claims = new ClaimsIdentity(); string commandText = "SELECT * FROM AspNetRoleClaims WHERE RoleId = @roleId"; Dictionary <string, object> parameters = new Dictionary <string, object>() { { "@RoleId", roleId } }; var rows = _database.Query(commandText, parameters); foreach (var row in rows) { Claim claim = new Claim(row["claimtype"], row["claimvalue"]); claims.AddClaim(claim); } return(claims); }
/// <summary> /// Returns a list of user's logins. /// </summary> /// <param name="userId">The user's id.</param> /// <returns></returns> public List <UserLoginInfo> FindByUserId(string userId) { List <UserLoginInfo> logins = new List <UserLoginInfo>(); string commandText = "SELECT * FROM AspNetUserLogins WHERE UserId = @userId"; Dictionary <string, object> parameters = new Dictionary <string, object>() { { "@userId", userId } }; var rows = _database.Query(commandText, parameters); foreach (var row in rows) { var login = new UserLoginInfo(row["loginprovider"], row["providerkey"], row["displayname"]); logins.Add(login); } return(logins); }