我需要确定当前登录的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();