GetEnvironmentVariable

GetEnvironmentVariable

我需要确定当前登录的Windows用户的域。
我没有在.NET Core中看到Environment.UserDomainName,也找不到任何替代方法。它藏在别处吗?

这不是System.Environment in .NET Core问题的重复,因为我在.NET Core中获取Environment类没有问题。我需要它缺少的特定属性UserDomainName。

最佳答案

不幸的是,Environment.UserDomainName不适用于.NET Core。

但是,.NET Core确实提供了Environment.GetEnvironmentVariable(),它允许您访问环境变量。由于USERDOMAIN环境变量可用于Windows,而HOSTNAME环境变量可用于Linux和Mac,因此如果Windows是Windows,则可以调用Environment.GetEnvironmentVariable("USERDOMAIN");如果是Linux / Mac,则可以是Environment.GetEnvironmentVariable("HOSTNAME")

本课程可能会有所帮助:

public static class Machine
{
    public static string User(){
        return Environment.GetEnvironmentVariable("USERNAME") ?? Environment.GetEnvironmentVariable("USER");
    }

    public static string Domain(){
        return Environment.GetEnvironmentVariable("USERDOMAIN") ?? Environment.GetEnvironmentVariable("HOSTNAME");
    }
}


可以轻松获得用户名和域:
Machine.User();Machine.Domain();

09-08 11:20