我需要确定当前登录的Windows用户的域。
在.NET Core中,我没有看到Environment.UserDomainName,也找不到任何替代方法。它是否隐藏在其他地方?
这不是System.Environment in .NET Core问题的重复,因为我没有在.NET Core中获取环境类方面遇到任何问题。我需要其中的特定属性UserDomainName,但它在那里缺失。
我需要确定当前登录的Windows用户的域。
在.NET Core中,我没有看到Environment.UserDomainName,也找不到任何替代方法。它是否隐藏在其他地方?
这不是System.Environment in .NET Core问题的重复,因为我没有在.NET Core中获取环境类方面遇到任何问题。我需要其中的特定属性UserDomainName,但它在那里缺失。
很遗憾,Environment.UserDomainName
在.NET Core中不可用。
然而,.NET Core提供了Environment.GetEnvironmentVariable()
,它允许您访问环境变量。由于USERDOMAIN环境变量适用于Windows,HOSTNAME环境变量适用于Linux和Mac,因此您可以调用Environment.GetEnvironmentVariable("USERDOMAIN")
(如果是Windows),或者Environment.GetEnvironmentVariable("HOSTNAME")
(如果是Linux/Mac)。
这个类可能会有所帮助:
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();