Пример #1
0
        public bool TokenMembershipCheck(string sid)
        {
            bool   result = false;
            IntPtr zero   = IntPtr.Zero;

            try
            {
                if (!NativeMethodProvider.ConvertStringSidToSid(sid, out zero))
                {
                    throw new Win32Exception(Marshal.GetLastWin32Error());
                }
                if (!NativeMethodProvider.CheckTokenMembership(IntPtr.Zero, zero, ref result))
                {
                    throw new Win32Exception(Marshal.GetLastWin32Error());
                }
            }
            catch (Exception e)
            {
                SetupLogger.LogError(e);
            }
            finally
            {
                if (zero != IntPtr.Zero)
                {
                    NativeMethodProvider.LocalFree(zero);
                }
            }
            return(result);
        }