In 2.79, the answer is a bit more complicated and you won’t have as much control.
If you are using Cycles: In material preview mode, the objects should take the material’s color automatically if you are using nodes. If you aren’t using nodes on the material or you are in solid view, it’s the material’s viewport color that will be shown instead (in the material tab, you will find a “viewport” section where you can set the material’s viewport color). Also, in the viewport’s “n” menu (the hidden menu to the right side of the viewport), you will find settings for ambient occlusion in the viewport, which can help.
If you are using blender internal renderer: You have to also take into account the world (sky) settings. The “ambient color” and “environment lighting” both affect the material preview mode. Also, if you have any hemi light in your scene, it also adds light everywhere, so be careful about that. However, you will never be able to fully prevent bright spots, because in 2.79, the viewport has no way to change the color space or adjust the exposure. The newer versions of Blender use the filmic color space not just for the render, but also in the viewport, which helps prevent bright spots.