Environment.UserDomainName 在 .NET Core 控制台应用程序中等效
Environment.UserDomainName equivalent in .NET Core console app
我需要确定当前登录的 Windows 用户的域。
我在 .NET Core 中没有看到 Environment.UserDomainName,我也找不到任何替代方案。它隐藏在其他地方吗?
这不是 问题的重复,因为我在 .NET Core 中获取环境 class 没有问题。我需要它的特定 属性 UserDomainName,它在那里丢失了。
遗憾的是,Environment.UserDomainName
不适用于 .NET Core。
但是,.NET Core 确实提供了 Environment.GetEnvironmentVariable()
,它允许您访问环境变量。由于 USERDOMAIN 环境变量可用于 Windows 并且 HOSTNAME 环境变量可用于 Linux 和 Mac,如果它的 Windows 或 Environment.GetEnvironmentVariable("HOSTNAME")
如果它是 Linux/Mac.
这个 class 可能会有帮助:
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();
我需要确定当前登录的 Windows 用户的域。 我在 .NET Core 中没有看到 Environment.UserDomainName,我也找不到任何替代方案。它隐藏在其他地方吗?
这不是
遗憾的是,Environment.UserDomainName
不适用于 .NET Core。
但是,.NET Core 确实提供了 Environment.GetEnvironmentVariable()
,它允许您访问环境变量。由于 USERDOMAIN 环境变量可用于 Windows 并且 HOSTNAME 环境变量可用于 Linux 和 Mac,如果它的 Windows 或 Environment.GetEnvironmentVariable("HOSTNAME")
如果它是 Linux/Mac.
这个 class 可能会有帮助:
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();