Exemplo n.º 1
0
        private static bool GetAccountNameAndType(SecurityIdentifier sid, out string domainName, out string accountName)
        {
            string systemName = null;

            byte[] array = new byte[sid.BinaryLength];
            sid.GetBinaryForm(array, 0);
            uint          capacity       = 64U;
            uint          capacity2      = 64U;
            StringBuilder stringBuilder  = new StringBuilder((int)capacity);
            StringBuilder stringBuilder2 = new StringBuilder((int)capacity2);
            int           num            = 0;
            int           num2;

            if (!DatabaseEvent.LookupAccountSid(systemName, array, stringBuilder, ref capacity, stringBuilder2, ref capacity2, out num2) && (num = Marshal.GetLastWin32Error()) == 122)
            {
                stringBuilder  = new StringBuilder((int)capacity);
                stringBuilder2 = new StringBuilder((int)capacity2);
                DatabaseEvent.LookupAccountSid(systemName, array, stringBuilder, ref capacity, stringBuilder2, ref capacity2, out num2);
                num = Marshal.GetLastWin32Error();
            }
            if (num == 0)
            {
                domainName  = stringBuilder2.ToString();
                accountName = stringBuilder.ToString();
                return(true);
            }
            if (num == 8)
            {
                throw MapiExceptionHelper.OutOfMemoryException("LookupAccountSid failure.");
            }
            accountName = "=unknown=";
            domainName  = "=unknown=";
            return(false);
        }
Exemplo n.º 2
0
        void IConfigurable.CopyChangesFrom(IConfigurable source)
        {
            DatabaseEvent databaseEvent = source as DatabaseEvent;

            if (databaseEvent == null)
            {
                throw new NotImplementedException(string.Format("Cannot copy changes from type {0}.", source.GetType()));
            }
            this.mapiEvent            = databaseEvent.mapiEvent;
            this.databaseId           = databaseEvent.databaseId;
            this.server               = databaseEvent.server;
            this.isDatabaseCopyActive = databaseEvent.isDatabaseCopyActive;
        }