Can a curve with a bevel profile have 2 materials
There is currently no way to have multiple materials using a single curve and a profile object. 

You could have a single material containing 2 different shaders, but you would need a way to separate what material is for what part of the object. One way to do that would be to use a bevel object curve composed of two separate splines inside. You could flip the direction of one of the splines (w -> Switch Direction with the spline selected in edit mode) in order for the result to have one part of it with inverted normals.



You could then use Backfacing output of the Geometry node to mix your different shaders. Note that you will have the normals inverted so you will also have to take that into account in one of your shaders: for example you would have to invert the IOR value of the Fresnel node if you used one in the shader: