Obtendo o caminho do diretório inicial em c #?

Ok, eu verifiquei Environment.SpecialFolder, mas não há nada lá para isso.

Eu quero pegar o diretório inicial do usuário atual em c #. (por exemplo.c:\documents and settings\user sob XP,c:\users\user no Vista e/home/user em Unix.)

Eu sei que posso ler as variáveis ​​do ambiente para descobrir isso, mas quero fazer isso de maneira multiplataforma.

Existe alguma maneira que eu possa fazer isso com o .net (de preferência usando mscorlib)?

ATUALIZAR: Ok, este é o código que acabei usando:

string homePath = (Environment.OSVersion.Platform == PlatformID.Unix || 
                   Environment.OSVersion.Platform == PlatformID.MacOSX)
    ? Environment.GetEnvironmentVariable("HOME")
    : Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");

questionAnswers(8)

yourAnswerToTheQuestion