Hi,
The following work, but I'm pretty sure can be converted to a LINQ query, and been wasting time on it (Not necessary, but curiosity can be a killer sometimes)
(User got a member of type IList<Role> where Role have a member "RoleName")

Code:
public override string[] GetRolesForUser(string username)
{
    var roles = new StringBuilder();
    try
    {
        User user = UserRepository.GetUserByName(username, ApplicationName);
        if (user != null)
        {
            foreach (Role role in user.Roles)
            {
                roles.Append(role.RoleName + ",");
            }
        }
    }
    catch (Exception ex)
    {
        throw new MemberAccessException("Error processing role data - " + ex.Message);
    }
    if (roles.Length > 0)
    {
        roles.Remove(roles.Length - 1, 1);
        return roles.ToString().Split(',');
    }
    return new string[0];
}
Figured where I loop over the roles a query can do the job......no?