Try your search with a different keyword or use * as a wildcard.
using System.Diagnostics;
using System.Runtime.Versioning;
using System.Security.Principal;
namespace Nop.Web.Framework.Security;
/// 
/// Represent information about current OS user 
///  
public static class CurrentOSUser
{
    #region Ctor
    static CurrentOSUser()
    {
        Name = Environment.UserName;
        DomainName = Environment.UserDomainName;
        switch (Environment.OSVersion.Platform)
        {
            case PlatformID.Win32NT:
                if (OperatingSystem.IsWindows())
                    PopulateWindowsUser();
                break;
            case PlatformID.Unix:
                PopulateLinuxUser();
                break;
            default:
                UserId = Name;
                Groups = new List();
                break;
        }
    }
    #endregion
    #region Methods
    /// 
    /// Populate information about windows user
    ///  
    [SupportedOSPlatform("windows")]
    public static void PopulateWindowsUser()
    {
        Groups = WindowsIdentity.GetCurrent().Groups?.Select(p => p.Value).ToList();
        UserId = Name;
    }
    /// 
    /// Populate information about linux user
    ///  
    public static void PopulateLinuxUser()
    {
        var process = new Process
        {
            StartInfo = new ProcessStartInfo
            {
                RedirectStandardInput = true,
                RedirectStandardOutput = true,
                UseShellExecute = false,
                FileName = "sh",
                Arguments = "-c \" id -u ; id -G \""
            }
        };
        process.Start();
        process.WaitForExit();
        var res = process.StandardOutput.ReadToEnd();
        var respars = res.Split("\n");
        UserId = respars[0];
        Groups = respars[1].Split(" ").ToList();
    }
    #endregion
    #region Properties
    /// 
    /// Returns user name
    ///  
    public static string Name { get; }
    /// 
    /// Returns user domain name for Windows or group for Linux
    ///  
    public static string DomainName { get; }
    /// 
    /// Returns user groups
    ///  
    public static List Groups { get; private set; }
    /// 
    /// Returns user name for Windows or user Id  for Linux like 1001
    ///  
    public static string UserId { get; private set; }
    /// 
    /// Returns full user name
    ///  
    public static string FullName => $@"{DomainName}\{Name}";
    #endregion
}