Exemplo n.º 1
0
        /// <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)
        {
            TUser  user        = null;
            string commandText = "SELECT * FROM \"AspNetUsers\" 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             = 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);
        }
Exemplo n.º 2
0
        /// <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)
        {
            string commandText = "SELECT * FROM " + fullTableName + " WHERE " + fieldID.Quoted() + " = @id";
            Dictionary <string, object> parameters = new Dictionary <string, object>()
            {
                { "@id", userId }
            };

            var rows = _database.Query(commandText, parameters);

            return(loadUser(rows));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Retorna uma lista de Roles do Usuário em questão
        /// </summary>
        /// <param name="userId">Código do Usuário</param>
        /// <returns></returns>
        public List <string> FindByUserId(string userId)
        {
            List <string> roles = new List <string>();
            //TODO: This probably does not work, and may need testing.

            string commandText = "select AspRoles." + RoleTable.fieldName.Quoted() + " from " + UserTable <IdentityUser> .fullTableName + " AspUsers" +
                                 " INNER JOIN " + fullTableName + " AspUserRoles " +
                                 " ON AspUsers." + UserTable <IdentityUser> .fieldID.Quoted() + " = AspUserRoles." + fieldUserID.Quoted() +
                                 " INNER JOIN " + RoleTable.fullTableName + " AspRoles " +
                                 " ON AspUserRoles." + fieldRoleID.Quoted() + " = AspRoles." + RoleTable.fieldId.Quoted() +
                                 " where AspUsers." + UserTable <IdentityUser> .fieldID.Quoted() + " = @userId";

            /*select AspNetRoles.Name from AspNetUsers
             * inner join AspNetUserRoles
             * ON AspNetUsers.ID = AspNetUserRoles.UserID
             * inner join AspNetRoles
             * ON aspNetUserRoles.RoleID = AspNetRoles.ID
             * where AspNetUser.ID = :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[fieldRoleID]);
            }

            return(roles);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Returns a list of user's roles.
        ///
        /// Correct by Slawomir Figiel
        /// </summary>
        /// <param name="userId">The user's id.</param>
        /// <returns></returns>
        public List <string> FindByUserId(string userId)
        {
            List <string> roles = new List <string>();

            //TODO: This probably does not work, and may need testing.
            //string commandText = "SELECT  AspNetRoles . Name  FROM  AspNetUsers ,  AspNetRoles ,  AspNetUserRoles  ";
            //       commandText += "WHERE  AspNetUsers . Id  =  AspNetUserRoles . UserId  AND  AspNetUserRoles . RoleId  =  AspNetRoles . Id ;";
            //string commandText = "SELECT  Name " + " FROM  AspNetRoles  " + " INNER JOIN  AspNetUserRoles  ON  AspNetUserRoles . RoleId  =  AspNetRoles . Id  "
            //                        + " WHERE  UserId  = @userId";

            string commandText = "SELECT  AspNetRoles . Name  FROM  AspNetRoles  JOIN  AspNetUserRoles  ON  AspNetUserRoles . RoleId  =  AspNetRoles . Id  WHERE  AspNetUserRoles . UserId  = @userId;";

            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);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Returns a list of user's roles.
        ///
        /// Correct by Slawomir Figiel
        /// </summary>
        /// <param name="userId">The user's id.</param>
        /// <returns></returns>
        public List <string> FindByUserId(string userId)
        {
            List <string> roles = new List <string>();

            //TODO: This probably does not work, and may need testing.
            //string commandText = "SELECT \"AspNetRoles\".\"Name\" FROM \"AspNetUsers\", \"AspNetRoles\", \"AspNetUserRoles\" ";
            //       commandText += "WHERE \"AspNetUsers\".\"Id\" = \"AspNetUserRoles\".\"UserId\" AND \"AspNetUserRoles\".\"RoleId\" = \"AspNetRoles\".\"Id\";";
            //string commandText = "SELECT \"Name\"" + " FROM \"AspNetRoles\" " + " INNER JOIN \"AspNetUserRoles\" ON \"AspNetUserRoles\".\"RoleId\" = \"AspNetRoles\".\"Id\" "
            //                        + " WHERE \"UserId\" = @userId";

            string commandText = "SELECT \"AspNetRoles\".\"Name\" FROM \"AspNetRoles\" JOIN \"AspNetUserRoles\" ON \"AspNetUserRoles\".\"RoleId\" = \"AspNetRoles\".\"Id\" WHERE \"AspNetUserRoles\".\"UserId\" = @userId;";

            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);
        }
        /// <summary>
        /// Returns all users. Created by: Slawomir Figiel
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        ///
        public List <TUser> GetAllUsers()
        {
            List <TUser> users = new List <TUser>();

            string commandText = "SELECT * FROM \"AspNetUsers\"";
            var    rows        = _database.Query(commandText, new Dictionary <string, object>());

            foreach (var row in rows)
            {
                TUser user = (TUser)Activator.CreateInstance(typeof(TUser));
                user.Id             = 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";
                users.Add(user);
            }

            return(users);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Returns all role names.
        ///
        /// Created by: Slawomir Figiel
        /// </summary>
        /// <returns>Role name.</returns>
        public List <IdentityRole> GetAllRoleNames()
        {
            List <IdentityRole> roles = new List <IdentityRole>();
            string commandText        = "SELECT * FROM AspNetRoles";
            var    rows = _database.Query(commandText, new Dictionary <string, object>());

            foreach (var row in rows)
            {
                IdentityRole r = new IdentityRole(row["Name"], row["Id"]);
                roles.Add(r);
            }
            return(roles);
        }
        /// <summary>
        /// Returns a ClaimsIdentity instance given a userId.
        /// </summary>
        /// <param name="userId">The user's id.</param>
        /// <returns></returns>
        public ClaimsIdentity FindByUserId(string userId)
        {
            ClaimsIdentity claims                  = new ClaimsIdentity();
            string         commandText             = "SELECT * FROM \"AspNetUserClaims\" WHERE \"UserId\" = @userId";
            Dictionary <string, object> parameters = new Dictionary <string, object>()
            {
                { "@UserId", userId }
            };

            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"]);
                logins.Add(login);
            }

            return(logins);
        }
        /// <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 " + fullTableName + " WHERE " + fielduserID.Quoted() + " = @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[fieldLoginProvider], row[fieldProviderKey]);
                logins.Add(login);
            }

            return(logins);
        }
        /// <summary>
        /// Returns a ClaimsIdentity instance given a userId.
        /// </summary>
        /// <param name="userId">The user's id.</param>
        /// <returns></returns>
        public ClaimsIdentity FindByUserId(string userId)
        {
            ClaimsIdentity claims                  = new ClaimsIdentity();
            string         commandText             = "SELECT * FROM " + fullTableName + " WHERE " + fieldUserID.Quoted() + " = @userId";
            Dictionary <string, object> parameters = new Dictionary <string, object>()
            {
                { "@userId", userId }
            };

            var rows = _database.Query(commandText, parameters);

            foreach (var row in rows)
            {
                Claim claim = new Claim(row[fieldClaimType], row[fieldClaimValue]);
                claims.AddClaim(claim);
            }

            return(claims);
        }