Esempio n. 1
0
        ////////////////////////////////////////////////////////////////////////////////
        //
        ////////////////////////////////////////////////////////////////////////////////
        private static void _ReadSidAndName(IntPtr pointer, out String sid, out String account)
        {
            sid     = String.Empty;
            account = String.Empty;
            IntPtr lpSid = IntPtr.Zero;

            try
            {
                advapi32.ConvertSidToStringSid(pointer, ref lpSid);
                if (IntPtr.Zero == lpSid)
                {
                    return;
                }
                sid = Marshal.PtrToStringAuto(lpSid);

                if (!Enumeration.ConvertSidToName(pointer, out account))
                {
                    return;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                kernel32.LocalFree(lpSid);
            }
        }