title: Using Process.Start to open a URL with username, password, domain
body: <p>When opening a URL with the default browser, the following works fine:</p>
  
  <pre><code>Process.Start(@"https://www.reddit.com/r/zeronet")
  </code></pre>
  
  <p>This works the same as the 'start' command on the console. However, in <a href="https://msdn.microsoft.com/en-us/library/53ezey2s(v=vs.110).aspx" rel="nofollow">the documentation</a>, this argument is meant to be a filename or application.</p>
  
  <p>Some old code I've seen opens up URLs by opening Internet Explorer with the URL as an argument, but it uses a ProcessStart object:</p>
  
  <pre><code>Dim tempProcessObj As New ProcessObject(&lt;location of IE on the machine&gt;)
  tempProcessObj.Domain = "Domain"
  tempProcessObj.UserName = "UserName"
  tempProcessObj.Password = new SecureString();
  tempProcessObj.Arguments = "https://www.reddit.com/r/zeronet"
  
  Process.Start(tempProcessObj)
  </code></pre>
  
  <p>This throws an exception, "The system cannot find the file specified". This is probably because the fileName argument <em>meant</em> to be a file or executable location.</p>
  
  <p>So, based on this, I ask:</p>
  
  <ol>
  <li>If urls are supported by Process.Start(String), then why not in Process.Start(ProcessStartInfo)?</li>
  <li>When launching a URL, not an executable, is a UserName/Password/Domain even relevant? (ie is there a case that it would need this?)</li>
  <li>If this is the 'wrong' way to launch a URL in the default browser, what is the right way?</li>
  </ol>