Instead of trying to limit campaign contributions from corporations, or labor, or whomever, allow anyone to give as much money as they want to. The only restriction is that whenever the candidate appears in public, he has to wear a jumpsuit like a NASCAR driver with patches from all of his "sponsors" with the size of the patches relative to the size of the contributions.
Imagine a candidate with a giant Microsoft logo splashed across his chest...