【问题标题】:Environment.UserDomainName equivalent in .NET Core console app.NET Core 控制台应用程序中的 Environment.UserDomainName 等效项
【发布时间】:2016-12-01 16:46:07
【问题描述】:

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

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

【问题讨论】:

标签: c# console-application .net-core


【解决方案1】:

很遗憾,Environment.UserDomainName 不适用于 .NET Core。

但是,.NET Core 确实提供了Environment.GetEnvironmentVariable(),它允许您访问环境变量。由于 USERDOMAIN 环境变量适用于 Windows,而 HOSTNAME 环境变量适用于 Linux 和 Mac,如果是 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();

【讨论】:

  • 谢谢。在 System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows) 的帮助下,我相信我能够找出要提供的变量(“USERDOMAIN”或“HOSTNAME”)。
  • 直到您提到它,我才知道 System.Runtime.InteropServices NuGet 包。感谢您的提示!
猜你喜欢
  • 2023-04-10
  • 1970-01-01
  • 2016-11-02
  • 2019-12-29
  • 2018-04-11
  • 2016-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多