Beispiel #1
0
        private void SetGrandAccess(GenericSecurity security, int accessMask, SafeHandle safeHandle)
        {
            var rule = new GrantAccessRule(AccountInfo, accessMask, AccessControlType.Allow);

            security.SetAccessRule(rule);
            security.Persist(safeHandle, AccessControlSections.Access);
        }
        private static void GrantAccess(IdentityReference account, NoopSafeHandle handle, int accessMask)
        {
            GenericSecurity security = new GenericSecurity(false, ResourceType.WindowObject, handle, AccessControlSections.Access);

            security.AddAccessRule(new GenericAccessRule(account, accessMask, AccessControlType.Allow));
            security.Persist(handle, AccessControlSections.Access);
        }
Beispiel #3
0
        private int?ReadAccessMask(GenericSecurity security, SafeHandle safeHandle, int accessMask)
        {
            var ruels = GetAccessRules(security);

            var username = AccountInfo.Value;

            if (!username.Contains("\\"))
            {
                username = $"{Environment.MachineName}\\{username}";
            }

            var userResult = ruels.Cast <GrantAccessRule>().SingleOrDefault(r => r.IdentityReference.Value.ToLower() == username.ToLower() && accessMask == r.PublicAccessMask);

            if (userResult == null)
            {
                AddGrandAccess(security, accessMask, safeHandle);
                userResult = ruels.Cast <GrantAccessRule>().SingleOrDefault(r => r.IdentityReference.Value.ToLower() == username.ToLower());
                if (userResult != null)
                {
                    return(userResult.PublicAccessMask);
                }
            }
            else
            {
                return(userResult.PublicAccessMask);
            }

            return(null);
        }
        private static void GrantAccess(string username, IntPtr handle, int accessMask)
        {
            SafeHandle      safeHandle = new NoopSafeHandle(handle);
            GenericSecurity security   = new GenericSecurity(false, ResourceType.WindowObject, safeHandle, AccessControlSections.Access);

            security.AddAccessRule(new GenericAccessRule(new NTAccount(username), accessMask, AccessControlType.Allow));
            security.Persist(safeHandle, AccessControlSections.Access);
        }
Beispiel #5
0
        private static Trade trade()
        {
            SecurityInfo    info      = SecurityInfo.of(SecurityId.of("OG-Test", "1"), 20, CurrencyAmount.of(USD, 10));
            GenericSecurity security  = GenericSecurity.of(info);
            TradeInfo       tradeInfo = TradeInfo.builder().counterparty(StandardId.of("cpty", "a")).build();

            return(GenericSecurityTrade.builder().info(tradeInfo).security(security).quantity(123).price(456).build());
        }
        //-------------------------------------------------------------------------
        public virtual void test_resolveTarget()
        {
            GenericSecurity      security = GenericSecurity.of(SECURITY.Info);
            Trade                test     = sut().resolveTarget(ImmutableReferenceData.of(SECURITY.SecurityId, security));
            GenericSecurityTrade expected = GenericSecurityTrade.of(TRADE_INFO, security, 3000, 20);

            assertEquals(test, expected);
        }
Beispiel #7
0
        //-------------------------------------------------------------------------
        public virtual void test_resolveTarget()
        {
            EtdOptionPosition       position         = sut();
            GenericSecurity         resolvedSecurity = GenericSecurity.of(SECURITY.Info);
            ImmutableReferenceData  refData          = ImmutableReferenceData.of(SECURITY.SecurityId, resolvedSecurity);
            GenericSecurityPosition expected         = GenericSecurityPosition.ofLongShort(POSITION_INFO, resolvedSecurity, LONG_QUANTITY, SHORT_QUANTITY);

            assertEquals(position.resolveTarget(refData), expected);
        }
Beispiel #8
0
        public virtual void test_createProduct_wrongType()
        {
            IborFutureOptionSecurity test = sut();
            IborFuture      future        = OPTION.UnderlyingFuture;
            SecurityId      secId         = future.SecurityId;
            GenericSecurity sec           = GenericSecurity.of(INFO);
            ReferenceData   refData       = ImmutableReferenceData.of(secId, sec);

            assertThrows(() => test.createProduct(refData), typeof(System.InvalidCastException));
        }
Beispiel #9
0
        public virtual void test_createProduct_wrongType()
        {
            BondFutureSecurity test = sut();
            ImmutableList <FixedCouponBond> basket = PRODUCT.DeliveryBasket;
            SecurityId      secId   = basket.get(0).SecurityId;
            GenericSecurity sec     = GenericSecurity.of(INFO);
            ReferenceData   refData = ImmutableReferenceData.of(secId, sec);

            assertThrows(() => test.createProduct(refData), typeof(System.InvalidCastException));
        }
Beispiel #10
0
 private void RestAccessMask(int?oldAccessMask, int fullAccessMask, GenericSecurity security, SafeHandle safeHandle)
 {
     if (oldAccessMask == null)
     {
         RemoveGrantAccess(security, fullAccessMask, safeHandle);
     }
     else if (oldAccessMask != fullAccessMask)
     {
         SetGrandAccess(security, oldAccessMask.Value, safeHandle);
     }
 }
Beispiel #11
0
        private void Init(NTAccount accountInfo, int windowStationMask, int desktopMask)
        {
            AccountInfo = accountInfo;

            WsSafeHandle          = new NoopSafeHandle(GetProcessWindowStation());
            WindowStationSecurity = new GenericSecurity(false, ResourceType.WindowObject, WsSafeHandle, AccessControlSections.Access);

            DSafeHandle     = new NoopSafeHandle(GetThreadDesktop(GetCurrentThreadId()));
            DesktopSecurity = new GenericSecurity(false, ResourceType.WindowObject, DSafeHandle, AccessControlSections.Access);

            OldWindowStationMask = ReadAccessMask(WindowStationSecurity, WsSafeHandle, windowStationMask);
            OldDesktopMask       = ReadAccessMask(DesktopSecurity, DSafeHandle, desktopMask);
        }
        private void Init(int windowStationMask, int desktopMask)
        {
            try
            {
                WsSafeHandle          = new NoopSafeHandle(GetProcessWindowStation());
                WindowStationSecurity = new GenericSecurity(false, ResourceType.WindowObject, WsSafeHandle, AccessControlSections.Access);

                DSafeHandle     = new NoopSafeHandle(GetThreadDesktop(GetCurrentThreadId()));
                DesktopSecurity = new GenericSecurity(false, ResourceType.WindowObject, DSafeHandle, AccessControlSections.Access);

                OldWindowStationMask = ReadAccessMask(WindowStationSecurity, WsSafeHandle, windowStationMask);
                OldDesktopMask       = ReadAccessMask(DesktopSecurity, DSafeHandle, desktopMask);
            }
            catch (Exception ex)
            {
                logger.Error(ex, "The account couldn´t not init.");
            }
        }
        static void GrantAccess(string username, string?domainName, IntPtr handle, int accessMask)
        {
            SafeHandle safeHandle = new NoopSafeHandle(handle);
            var        security   =
                new GenericSecurity(
                    false,
                    ResourceType.WindowObject,
                    safeHandle,
                    AccessControlSections.Access);

            var account = string.IsNullOrEmpty(domainName)
                ? new NTAccount(username)
                : new NTAccount(domainName, username);

            security.AddAccessRule(
                new GenericAccessRule(
                    account,
                    accessMask,
                    AccessControlType.Allow));
            security.Persist(safeHandle, AccessControlSections.Access);
        }
        static void GrantAccess(string username, string?domainName, IntPtr handle, int accessMask)
        {
            SafeHandle safeHandle = new NoopSafeHandle(handle);
            var        security   =
                new GenericSecurity(
                    false,
                    ResourceType.WindowObject,
                    safeHandle,
                    AccessControlSections.Access);

            var account = string.IsNullOrEmpty(domainName)
#pragma warning disable PC001 // API not supported on all platforms
                ? new NTAccount(username)
                : new NTAccount(domainName, username);

#pragma warning restore PC001 // API not supported on all platforms

            security.AddAccessRule(
                new GenericAccessRule(
                    account,
                    accessMask,
                    AccessControlType.Allow));
            security.Persist(safeHandle, AccessControlSections.Access);
        }
Beispiel #15
0
 private AuthorizationRuleCollection GetAccessRules(GenericSecurity security)
 {
     return(security.GetAccessRules(true, false, typeof(NTAccount)));
 }
        private static Security security()
        {
            SecurityInfo info = SecurityInfo.of(ID, 20, CurrencyAmount.of(USD, 10));

            return(GenericSecurity.of(info));
        }