Esempio n. 1
0
        internal static PermissionListSet CreateCompressedState(IntPtr unmanagedDCS, out bool bHaltConstruction)
        {
            PermissionListSet   permissionListSet = new PermissionListSet();
            PermissionSetTriple currentTriple     = new PermissionSetTriple();
            int descCount = DomainCompressedStack.GetDescCount(unmanagedDCS);

            bHaltConstruction = false;
            PermissionSet granted;
            PermissionSet refused;

            for (int index = 0; index < descCount && !bHaltConstruction; ++index)
            {
                Assembly assembly;
                FrameSecurityDescriptor fsd;
                if (DomainCompressedStack.GetDescriptorInfo(unmanagedDCS, index, out granted, out refused, out assembly, out fsd))
                {
                    bHaltConstruction = permissionListSet.Update(currentTriple, fsd);
                }
                else
                {
                    permissionListSet.Update(currentTriple, granted, refused);
                }
            }
            if (!bHaltConstruction && !DomainCompressedStack.IgnoreDomain(unmanagedDCS))
            {
                DomainCompressedStack.GetDomainPermissionSets(unmanagedDCS, out granted, out refused);
                permissionListSet.Update(currentTriple, granted, refused);
            }
            permissionListSet.Terminate(currentTriple);
            return(permissionListSet);
        }
Esempio n. 2
0
        internal static PermissionListSet CreateCompressedState(IntPtr unmanagedDCS, out bool bHaltConstruction)
        {
            PermissionSet       set2;
            PermissionSet       set3;
            PermissionListSet   set           = new PermissionListSet();
            PermissionSetTriple currentTriple = new PermissionSetTriple();
            int descCount = DomainCompressedStack.GetDescCount(unmanagedDCS);

            bHaltConstruction = false;
            for (int i = 0; (i < descCount) && !bHaltConstruction; i++)
            {
                FrameSecurityDescriptor descriptor;
                Assembly assembly;
                if (DomainCompressedStack.GetDescriptorInfo(unmanagedDCS, i, out set2, out set3, out assembly, out descriptor))
                {
                    bHaltConstruction = set.Update(currentTriple, descriptor);
                }
                else
                {
                    set.Update(currentTriple, set2, set3);
                }
            }
            if (!bHaltConstruction && !DomainCompressedStack.IgnoreDomain(unmanagedDCS))
            {
                DomainCompressedStack.GetDomainPermissionSets(unmanagedDCS, out set2, out set3);
                set.Update(currentTriple, set2, set3);
            }
            set.Terminate(currentTriple);
            return(set);
        }
Esempio n. 3
0
        internal static PermissionListSet CreateCompressedState(IntPtr unmanagedDCS, out bool bHaltConstruction)
        {
            PermissionListSet   permissionListSet = new PermissionListSet();
            PermissionSetTriple currentTriple     = new PermissionSetTriple();
            int descCount = DomainCompressedStack.GetDescCount(unmanagedDCS);

            bHaltConstruction = false;
            int num = 0;

            while (num < descCount && !bHaltConstruction)
            {
                PermissionSet           in_g;
                PermissionSet           in_r;
                Assembly                assembly;
                FrameSecurityDescriptor fsd;
                if (DomainCompressedStack.GetDescriptorInfo(unmanagedDCS, num, out in_g, out in_r, out assembly, out fsd))
                {
                    bHaltConstruction = permissionListSet.Update(currentTriple, fsd);
                }
                else
                {
                    permissionListSet.Update(currentTriple, in_g, in_r);
                }
                num++;
            }
            if (!bHaltConstruction && !DomainCompressedStack.IgnoreDomain(unmanagedDCS))
            {
                PermissionSet in_g;
                PermissionSet in_r;
                DomainCompressedStack.GetDomainPermissionSets(unmanagedDCS, out in_g, out in_r);
                permissionListSet.Update(currentTriple, in_g, in_r);
            }
            permissionListSet.Terminate(currentTriple);
            return(permissionListSet);
        }
Esempio n. 4
0
        [System.Security.SecurityCritical]  // auto-generated
        static internal PermissionListSet CreateCompressedState(IntPtr unmanagedDCS, out bool bHaltConstruction)
        {
            PermissionListSet   pls           = new PermissionListSet();
            PermissionSetTriple currentTriple = new PermissionSetTriple();

            PermissionSet tmp_g, tmp_r;
            // Construct the descriptor list
            int descCount = DomainCompressedStack.GetDescCount(unmanagedDCS);

            bHaltConstruction = false;
            for (int i = 0; (i < descCount && !bHaltConstruction); i++)
            {
                FrameSecurityDescriptor fsd;
                Assembly assembly;
                if (DomainCompressedStack.GetDescriptorInfo(unmanagedDCS, i, out tmp_g, out tmp_r, out assembly, out fsd))
                {
                    // Got an FSD
                    bHaltConstruction = pls.Update(currentTriple, fsd);
                }
                else
                {
                    pls.Update(currentTriple, tmp_g, tmp_r);
                }
            }
            if (!bHaltConstruction)
            {
                // domain
                if (!DomainCompressedStack.IgnoreDomain(unmanagedDCS))
                {
                    DomainCompressedStack.GetDomainPermissionSets(unmanagedDCS, out tmp_g, out tmp_r);
                    pls.Update(currentTriple, tmp_g, tmp_r);
                }
            }
            pls.Terminate(currentTriple);


            // return the created object
            return(pls);
        }