Passing a password to a viewmodel
Why don't you just use the overloaded constructor of the NetworkCredential class which takes the password as SecureString? 

In this way you can remove the ConvertToUnsecureString() method at all and you don't have to read the decrypted value of the password.



It is always recommended to use System.IO.Path.Combine() instead of adding up the path by using string concatenation. In this way you will be safe regarding illegal characters in the path, missing \ etc.