Пример #1
0
 public static extern bool LookupAccountName(
     StringBuilder lpSystemName,
     StringBuilder lpAccountName,
     ref Ntifs._SID Sid,
     ref uint cbSid,
     StringBuilder ReferencedDomainName,
     ref uint cchReferencedDomainName,
     out Winnt._SID_NAME_USE peUse
     );
Пример #2
0
        ////////////////////////////////////////////////////////////////////////////////
        //
        ////////////////////////////////////////////////////////////////////////////////
        public static void _ReadSidAndName(IntPtr pointer, out string sid, out string account)
        {
            sid     = string.Empty;
            account = string.Empty;
            IntPtr lpSid = IntPtr.Zero;

            try
            {
                Ntifs._SID structSid = (Ntifs._SID)Marshal.PtrToStructure(pointer, typeof(Ntifs._SID));
                bool       retVal    = advapi32.ConvertSidToStringSid(ref structSid, ref lpSid);
                if (!retVal || IntPtr.Zero == lpSid)
                {
                    Misc.GetWin32Error("ConvertSidToStringSid");
                    return;
                }
                sid = Marshal.PtrToStringAuto(lpSid);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                kernel32.LocalFree(lpSid);
            }

            try
            {
                account = new SecurityIdentifier(sid).Translate(typeof(NTAccount)).ToString();
            }
            catch (IdentityNotMappedException ex)
            {
                account = ex.Message;
            }

            /*
             * if (!UserSessions.ConvertSidToName(pointer, out account))
             * {
             *  return;
             * }
             */
        }
Пример #3
0
 public static extern bool ConvertSidToStringSid(ref Ntifs._SID Sid, ref IntPtr StringSid);