There are situations where such task is needed. But as Sergey highlighted, it should be avoided.
Still if you need too, the method you tried is far the worst, and will never work. You will get nothing from starting an explorer process on the server. The main question is what do you want to do with the opened share. Supposing, that you start the explorer instance, you would only get a hidden explorer on the server, and you can't do much with it.
So I assume, you want to access the files in it.
Well, there are two scenarios:
1) The domains are in the same forest, or inside necessary trust boundaries. This way you can create a thread with the remote credentials. Your application will run under the application pool credentials, but that thread runs under the desired one so you can access remote resources. If this applies to you, start here:
A Complete Impersonation Demo in C#.NET[
^].
Two notes:
- you could change the security context of whole worker thread if needed, but you might encounter problems with the local resources
- asp.net can impersonate logged-in or specified user by default, if this applies to you start here:
http://msdn.microsoft.com/en-us/library/aa292118(v=vs.71).aspx[
^]
2) The remote domain is not in any trust relation with the local one (or you need many remote shares at once), you can open remote network connections with WNetAddConnection2 API function. You need p/invoke, but here you can see how to implement and use it:
http://stackoverflow.com/questions/295538/how-to-provide-user-name-and-password-when-connecting-to-a-network-share[
^]
Be aware, that these methods give you only the possibility to access files (provided you have the rights also), but you will have to deal with the files.