zoukankan      html  css  js  c++  java
  • C#获取windows所有用户名

    #region 验证操作系统用户名
            public bool isExistUserName(string name)
            {
                List<string> nameList = GetSysUserNames();
                return nameList.Contains(name);
            }

            public List<string> GetSysUserNames()
            {
                int EntriesRead;
                int TotalEntries;
                int Resume;
                IntPtr bufPtr;
                List<string> temp = new List<string>();

                NetUserEnum(null, 0, 2, out   bufPtr, -1, out   EntriesRead,
                        out   TotalEntries, out   Resume);
                if (EntriesRead > 0)
                {
                    USER_INFO_0[] Users = new USER_INFO_0[EntriesRead];
                    IntPtr iter = bufPtr;
                    for (int i = 0; i < EntriesRead; i++)
                    {
                        Users[i] = (USER_INFO_0)Marshal.PtrToStructure(iter,
                                typeof(USER_INFO_0));
                        iter = (IntPtr)((int)iter + Marshal.SizeOf(typeof(USER_INFO_0)));
                        temp.Add(Users[i].Username);
                    }
                    NetApiBufferFree(bufPtr);
                }
                return temp;
            }
            [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
            public struct USER_INFO_0
            {
                public string Username;
            }
            [DllImport("Netapi32.dll ")]
            extern static int NetUserEnum(
                    [MarshalAs(UnmanagedType.LPWStr)]  
            string servername,
                    int level,
                    int filter,
                    out   IntPtr bufptr,
                    int prefmaxlen,
                    out   int entriesread,
                    out   int totalentries,
                    out   int resume_handle);

            [DllImport("Netapi32.dll ")]
            extern static int NetApiBufferFree(IntPtr Buffer);
            #endregion

  • 相关阅读:
    基本数据类型与其包装类型
    String与常量池(JDK1.8)
    数据库知识归纳(面试向)
    HashMap、ConcurrentHashMap以及HashTable(面试向)
    Java多线程基础(面试向)
    Java的类加载
    Sql语句的一些事(二)
    RUBY惯用方法(转)
    Ruby中区分运行来源的方法(转)
    ruby安装devkit
  • 原文地址:https://www.cnblogs.com/futao/p/2042138.html
Copyright © 2011-2022 走看看