예제 #1
0
        public void PermissionState_Bad()
        {
            PermissionState             ps  = (PermissionState)77;
            DirectoryServicesPermission dsp = new DirectoryServicesPermission(ps);

            Assert.IsFalse(dsp.IsUnrestricted(), "IsUnrestricted");
        }
예제 #2
0
        public void Intersect_Null()
        {
            DirectoryServicesPermission dsp = new DirectoryServicesPermission(PermissionState.None);

            // No intersection with null
            Assert.IsNull(dsp.Intersect(null), "None N null");
        }
    private String getADName(string user)
    {
        // Remove TYSONET\ from the beginning of the string. May want to
        // use regular expressions here and print out the username with a groups
        // not found message to help with possible other prefixes down the road

        DirectoryServicesPermission dsPerm = new DirectoryServicesPermission(System.Security.Permissions.PermissionState.Unrestricted);
        dsPerm.Assert();
        // Filter to get user's distinguished name (DN)
        string sFilter = "(&(objectClass=user)(SAMAccountName=" + user + "))";

        DataTable dt = new DataTable("Result");

        // Query for all users and return a table of their distinguished names
        dt = RunLDAPQuery(sFilter, "Name");

        if (dt.Rows.Count == 1)
        {
            DataRow dr = dt.Rows[0];
            return (string)dr["Name"];
        }
        else
        {
            return ("User not found");
        }
    }
        public static void DirectoryServicesPermissionCallMethods()
        {
            DirectoryServicesPermission dsp   = new DirectoryServicesPermission(new PermissionState());
            DirectoryServicesPermission other = new DirectoryServicesPermission();

            other = new DirectoryServicesPermission(default(DirectoryServicesPermissionAccess), "test");
            DirectoryServicesPermissionEntryCollection pe = other.PermissionEntries;
        }
예제 #5
0
 public void IsSubset_Self()
 {
     foreach (DirectoryServicesPermissionAccess ppl in AllAccess)
     {
         DirectoryServicesPermission dsp = new DirectoryServicesPermission(PermissionState.None);
         dsp.PermissionEntries.Add(new DirectoryServicesPermissionEntry(ppl, ppl.ToString()));
         Assert.IsTrue(dsp.IsSubsetOf(dsp), ppl.ToString());
     }
 }
예제 #6
0
        public void DirectoryServicesPermissionAccesss_Bad()
        {
            DirectoryServicesPermissionAccess dspa = (DirectoryServicesPermissionAccess)Int32.MinValue;
            DirectoryServicesPermission       dsp  = new DirectoryServicesPermission(dspa, String.Empty);

            Assert.AreEqual(1, dsp.PermissionEntries.Count, "Count");
            Assert.AreEqual((DirectoryServicesPermissionAccess)Int32.MinValue, dsp.PermissionEntries [0].PermissionAccess, "PermissionAccess");
            Assert.AreEqual(String.Empty, dsp.PermissionEntries [0].Path, "Path");
        }
예제 #7
0
        public void FromXml_WrongVersion()
        {
            DirectoryServicesPermission dsp = new DirectoryServicesPermission(PermissionState.None);
            SecurityElement             se  = dsp.ToXml();

            se.Attributes.Remove("version");
            se.Attributes.Add("version", "2");
            dsp.FromXml(se);
        }
예제 #8
0
        public void Union_Null()
        {
            DirectoryServicesPermission dsp = new DirectoryServicesPermission(PermissionState.None);

            dsp.PermissionEntries.Add(new DirectoryServicesPermissionEntry(DirectoryServicesPermissionAccess.None, String.Empty));
            // Union with null is a simple copy
            DirectoryServicesPermission union = (DirectoryServicesPermission)dsp.Union(null);

            Assert.IsNotNull(dsp.PermissionEntries.Count, "Count");
        }
예제 #9
0
        public void FromXml_WrongTagCase()
        {
            DirectoryServicesPermission dsp = new DirectoryServicesPermission(PermissionState.None);
            SecurityElement             se  = dsp.ToXml();

            se.Tag = "IPERMISSION";             // instead of IPermission
            dsp.FromXml(se);
            // note: normally IPermission classes (in corlib) DO care about the
            // IPermission tag
        }
예제 #10
0
        public void FromXml_NoVersion()
        {
            DirectoryServicesPermission dsp = new DirectoryServicesPermission(PermissionState.None);
            SecurityElement             se  = dsp.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", se.Attribute("class"));
            dsp.FromXml(w);
        }
예제 #11
0
        public void IsSubset_Null()
        {
            DirectoryServicesPermission dsp = new DirectoryServicesPermission(PermissionState.None);

#if NET_2_0
            Assert.IsTrue(dsp.IsSubsetOf(null), "null");
#else
            Assert.IsFalse(dsp.IsSubsetOf(null), "null");
#endif
        }
예제 #12
0
        internal CDirectoryServicesPermControls(IPermission perm, Object oParent) : base(perm, oParent)
        {
            // If they don't have a permission for this permission set, we will
            // feed our property page a 'none' permission state.

            if (perm == null)
            {
                m_perm = new DirectoryServicesPermission(PermissionState.None);
            }
        }// CDirectoryServicesPermControls
예제 #13
0
 public void Union_Self()
 {
     foreach (DirectoryServicesPermissionAccess ppl in AllAccess)
     {
         DirectoryServicesPermission dsp = new DirectoryServicesPermission(PermissionState.None);
         dsp.PermissionEntries.Add(new DirectoryServicesPermissionEntry(ppl, ppl.ToString()));
         DirectoryServicesPermission union = (DirectoryServicesPermission)dsp.Union(dsp);
         Assert.IsFalse(union.IsUnrestricted(), "IsUnrestricted " + ppl.ToString());
         Assert.AreEqual(1, union.PermissionEntries.Count, "Count " + ppl.ToString());
     }
 }
예제 #14
0
        public void FromXml_NoClass()
        {
            DirectoryServicesPermission dsp = new DirectoryServicesPermission(PermissionState.None);
            SecurityElement             se  = dsp.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("version", se.Attribute("version"));
            dsp.FromXml(w);
            // doesn't even care of the class attribute presence
        }
예제 #15
0
        public void Default()
        {
            DirectoryServicesPermissionAttribute a = new DirectoryServicesPermissionAttribute(SecurityAction.Assert);

            Assert.AreEqual(a.ToString(), a.TypeId.ToString(), "TypeId");
            Assert.IsFalse(a.Unrestricted, "Unrestricted");
            Assert.AreEqual("*", a.Path, "Path");
            Assert.AreEqual(DirectoryServicesPermissionAccess.Browse, a.PermissionAccess, "PermissionAccess");

            DirectoryServicesPermission sp = (DirectoryServicesPermission)a.CreatePermission();

            Assert.IsFalse(sp.IsUnrestricted(), "IsUnrestricted");
        }
예제 #16
0
 public void Copy()
 {
     foreach (DirectoryServicesPermissionAccess ppl in AllAccess)
     {
         DirectoryServicesPermission      dsp  = new DirectoryServicesPermission(PermissionState.None);
         DirectoryServicesPermissionEntry dspe = new DirectoryServicesPermissionEntry(ppl, ppl.ToString());
         dsp.PermissionEntries.Add(dspe);
         DirectoryServicesPermission copy = (DirectoryServicesPermission)dsp.Copy();
         Assert.AreEqual(1, copy.PermissionEntries.Count, "Count==1");
         Assert.AreEqual(ppl, dsp.PermissionEntries [0].PermissionAccess, ppl.ToString());
         Assert.AreEqual(ppl.ToString(), dsp.PermissionEntries [0].Path, ppl.ToString() + "-Path");
     }
 }
예제 #17
0
        public void FromXml_WrongClass()
        {
            DirectoryServicesPermission dsp = new DirectoryServicesPermission(PermissionState.None);
            SecurityElement             se  = dsp.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", "Wrong" + se.Attribute("class"));
            w.AddAttribute("version", se.Attribute("version"));
            dsp.FromXml(w);
            // doesn't care of the class name at that stage
            // anyway the class has already be created so...
        }
예제 #18
0
        public void Unrestricted()
        {
            DirectoryServicesPermissionAttribute a = new DirectoryServicesPermissionAttribute(SecurityAction.Assert);

            a.Unrestricted = true;
            DirectoryServicesPermission wp = (DirectoryServicesPermission)a.CreatePermission();

            Assert.IsTrue(wp.IsUnrestricted(), "IsUnrestricted");
            Assert.AreEqual("*", a.Path, "Path");
            Assert.AreEqual(DirectoryServicesPermissionAccess.Browse, a.PermissionAccess, "PermissionAccess");

            a.Unrestricted = false;
            wp             = (DirectoryServicesPermission)a.CreatePermission();
            Assert.IsFalse(wp.IsUnrestricted(), "!IsUnrestricted");
        }
예제 #19
0
        public void IsSubset_None()
        {
            // IsSubset with none
            // a. source (this) is none -> target is never a subset
            // b. destination (target) is none -> target is always a subset
            DirectoryServicesPermission dsp1 = new DirectoryServicesPermission(PermissionState.None);

            foreach (DirectoryServicesPermissionAccess ppl in AllAccess)
            {
                DirectoryServicesPermission dsp2 = new DirectoryServicesPermission(PermissionState.None);
                dsp2.PermissionEntries.Add(new DirectoryServicesPermissionEntry(ppl, ppl.ToString()));
                Assert.IsTrue(dsp1.IsSubsetOf(dsp2), "target " + ppl.ToString());
                Assert.IsFalse(dsp2.IsSubsetOf(dsp1), "source " + ppl.ToString());
            }
        }
예제 #20
0
        public void Intersect_None()
        {
            DirectoryServicesPermission dsp1 = new DirectoryServicesPermission(PermissionState.None);
            DirectoryServicesPermission dsp2 = new DirectoryServicesPermission(PermissionState.None);
            // 1. None N None
            DirectoryServicesPermission result = (DirectoryServicesPermission)dsp1.Intersect(dsp2);

            Assert.IsNull(result, "Empty N Empty");
            // 2. None N Entry
            dsp2.PermissionEntries.Add(new DirectoryServicesPermissionEntry(DirectoryServicesPermissionAccess.None, String.Empty));
            result = (DirectoryServicesPermission)dsp1.Intersect(dsp2);
            Assert.IsNull(result, "Empty N Entry");
            // 3. Entry N None
            result = (DirectoryServicesPermission)dsp2.Intersect(dsp1);
            Assert.IsNull(result, "Entry N Empty");
        }
예제 #21
0
        }// CreateDataTable

        protected override void PutValuesinPage()
        {
            // Put in the text for the radio buttons
            m_radUnrestricted.Text             = CResourceStore.GetString("DirectoryServicesPerm:GrantUnrestrict");
            m_radGrantFollowingPermission.Text = CResourceStore.GetString("DirectoryServicesPerm:GrantFollowing");

            DirectoryServicesPermission perm = (DirectoryServicesPermission)m_perm;

            CheckUnrestricted(perm);

            if (!perm.IsUnrestricted())
            {
                // Run through the list of socket permissions we have to accept connections
                IEnumerator enumer = perm.PermissionEntries.GetEnumerator();
                while (enumer.MoveNext())
                {
                    DirectoryServicesPermissionEntry dspp = (DirectoryServicesPermissionEntry)enumer.Current;
                    DataRow newRow;
                    newRow         = m_dt.NewRow();
                    newRow["Path"] = dspp.Path;

                    String sAccessString = "";
                    if (dspp.PermissionAccess == DirectoryServicesPermissionAccess.Browse)
                    {
                        sAccessString = CResourceStore.GetString("DirectoryServicesPermission:Browse");
                    }
                    else if (dspp.PermissionAccess == DirectoryServicesPermissionAccess.Write)
                    {
                        sAccessString = CResourceStore.GetString("DirectoryServicesPermission:Write");
                    }
                    else
                    {
                        sAccessString = CResourceStore.GetString("<unknown>");
                    }

                    newRow["Access"] = new DataGridComboBoxEntry(sAccessString);
                    m_dt.Rows.Add(newRow);
                }
            }

            // We want at least 1 row so it looks pretty
            while (m_dt.Rows.Count < 1)
            {
                AddEmptyRow(m_dt);
            }
        }// PutValuesinPage
예제 #22
0
        public void Union_None()
        {
            DirectoryServicesPermission dsp1 = new DirectoryServicesPermission(PermissionState.None);

            foreach (DirectoryServicesPermissionAccess ppl in AllAccess)
            {
                DirectoryServicesPermission dsp2 = new DirectoryServicesPermission(PermissionState.None);
                dsp2.PermissionEntries.Add(new DirectoryServicesPermissionEntry(ppl, ppl.ToString()));
                DirectoryServicesPermission union = (DirectoryServicesPermission)dsp1.Union(dsp2);
                Assert.IsFalse(union.IsUnrestricted(), "target.IsUnrestricted " + ppl.ToString());
                Assert.AreEqual(1, union.PermissionEntries.Count, "target.Count " + ppl.ToString());

                union = (DirectoryServicesPermission)dsp2.Union(dsp1);
                Assert.IsFalse(union.IsUnrestricted(), "source.IsUnrestricted " + ppl.ToString());
                Assert.AreEqual(1, union.PermissionEntries.Count, "source.Count " + ppl.ToString());
            }
        }
예제 #23
0
        public void PermissionState_Unrestricted()
        {
            PermissionState             ps  = PermissionState.Unrestricted;
            DirectoryServicesPermission dsp = new DirectoryServicesPermission(ps);

            Assert.AreEqual(0, dsp.PermissionEntries.Count, "PermissionEntries");
            Assert.IsTrue(dsp.IsUnrestricted(), "IsUnrestricted");

            SecurityElement se = dsp.ToXml();

            // only class and version are present
            Assert.AreEqual("true", se.Attribute("Unrestricted"), "Xml-Unrestricted");
            Assert.IsNull(se.Children, "Xml-Children");

            DirectoryServicesPermission copy = (DirectoryServicesPermission)dsp.Copy();

            Assert.IsFalse(Object.ReferenceEquals(dsp, copy), "ReferenceEquals");
            Assert.AreEqual(dsp.PermissionEntries.Count, copy.PermissionEntries.Count, "copy-PermissionEntries");
            Assert.AreEqual(dsp.IsUnrestricted(), copy.IsUnrestricted(), "copy-IsUnrestricted ()");
        }
예제 #24
0
        }// AddEmptyRow

        internal override IPermission GetCurrentPermission()
        {
            // Change cells so we get data committed to the grid
            m_dg.CurrentCell = new DataGridCell(0, 1);
            m_dg.CurrentCell = new DataGridCell(0, 0);


            DirectoryServicesPermission perm = null;

            if (m_radUnrestricted.Checked == true)
            {
                perm = new DirectoryServicesPermission(PermissionState.Unrestricted);
            }
            else
            {
                perm = new DirectoryServicesPermission(PermissionState.None);

                for (int i = 0; i < m_dt.Rows.Count; i++)
                {
                    // Make sure we have a socket permission to add
                    if (m_dg[i, 0] is String && ((String)m_dg[i, 0]).Length > 0)
                    {
                        String sPath = (String)m_dg[i, 0];

                        DirectoryServicesPermissionAccess dspa;

                        if (((String)m_dg[i, 1]).Equals(CResourceStore.GetString("DirectoryServicesPermission:Browse")))
                        {
                            dspa = DirectoryServicesPermissionAccess.Browse;
                        }
                        else
                        {
                            dspa = DirectoryServicesPermissionAccess.Write;
                        }

                        perm.PermissionEntries.Add(new DirectoryServicesPermissionEntry(dspa, sPath));
                    }
                }
            }
            return(perm);
        }// GetCurrentPermission
예제 #25
0
        public void PermissionEntries()
        {
            DirectoryServicesPermissionAccess          dspa  = DirectoryServicesPermissionAccess.None;
            DirectoryServicesPermission                dsp   = new DirectoryServicesPermission(dspa, String.Empty);
            DirectoryServicesPermissionEntryCollection dspec = dsp.PermissionEntries;

            Assert.AreEqual(1, dspec.Count, "Count==1");

            DirectoryServicesPermissionEntry dspe = new DirectoryServicesPermissionEntry(DirectoryServicesPermissionAccess.Browse, "*");

            dsp.PermissionEntries.Add(dspe);
            Assert.AreEqual(2, dspec.Count, "Count==2");

            // remove (same instance)
            dsp.PermissionEntries.Remove(dspe);
            Assert.AreEqual(1, dspec.Count, "Count==1 (b)");

            // remove different instance (doesn't work)
            dspe = new DirectoryServicesPermissionEntry(DirectoryServicesPermissionAccess.None, String.Empty);
            Assert.AreEqual(1, dspec.Count, "Count==1");
        }
예제 #26
0
        public void Intersect_Unrestricted()
        {
            // Intersection with unrestricted == Copy
            // a. source (this) is unrestricted
            DirectoryServicesPermission dsp1 = new DirectoryServicesPermission(PermissionState.Unrestricted);
            DirectoryServicesPermission dsp2 = new DirectoryServicesPermission(PermissionState.None);

            // 1. Unrestricted N None
            DirectoryServicesPermission result = (DirectoryServicesPermission)dsp1.Intersect(dsp2);

            Assert.IsFalse(result.IsUnrestricted(), "(Unrestricted N None).IsUnrestricted");
            Assert.AreEqual(0, result.PermissionEntries.Count, "(Unrestricted N None).Count");

            // 2. None N Unrestricted
            result = (DirectoryServicesPermission)dsp2.Intersect(dsp1);
            Assert.IsFalse(result.IsUnrestricted(), "(None N Unrestricted).IsUnrestricted");
            Assert.AreEqual(0, result.PermissionEntries.Count, "(None N Unrestricted).Count");

            // 3. Unrestricted N Unrestricted
            result = (DirectoryServicesPermission)dsp1.Intersect(dsp1);
            Assert.IsTrue(result.IsUnrestricted(), "(Unrestricted N Unrestricted).IsUnrestricted");
            Assert.AreEqual(0, result.PermissionEntries.Count, "(Unrestricted N Unrestricted).Count");

            // 4. Unrestricted N Entry
            dsp2.PermissionEntries.Add(new DirectoryServicesPermissionEntry(DirectoryServicesPermissionAccess.None, String.Empty));
            result = (DirectoryServicesPermission)dsp1.Intersect(dsp2);
            Assert.IsFalse(result.IsUnrestricted(), "(Unrestricted N Entry).IsUnrestricted");
            Assert.AreEqual(1, result.PermissionEntries.Count, "(Unrestricted N Entry).Count");

            // 5. Entry N Unrestricted
            result = (DirectoryServicesPermission)dsp2.Intersect(dsp1);
            Assert.IsFalse(result.IsUnrestricted(), "(Entry N Unrestricted).IsUnrestricted");
            Assert.AreEqual(1, result.PermissionEntries.Count, "(Entry N Unrestricted).Count");

            // 6. Unrestricted N Unrestricted
            dsp1.PermissionEntries.Add(new DirectoryServicesPermissionEntry(DirectoryServicesPermissionAccess.None, String.Empty));
            result = (DirectoryServicesPermission)dsp1.Intersect(dsp1);
            Assert.IsTrue(result.IsUnrestricted(), "(Unrestricted N Unrestricted).IsUnrestricted");
            Assert.AreEqual(1, result.PermissionEntries.Count, "(Unrestricted N Unrestricted).Count");
        }
예제 #27
0
 internal CDirectoryServicesPermDialog(DirectoryServicesPermission perm)
 {
     this.Text      = CResourceStore.GetString("DirectoryServicesPerm:PermName");
     m_PermControls = new CDirectoryServicesPermControls(perm, this);
     Init();
 } // CDirectoryServicesPermDialog
예제 #28
0
        public void FromXml_Null()
        {
            DirectoryServicesPermission dsp = new DirectoryServicesPermission(PermissionState.None);

            dsp.FromXml(null);
        }
        public void IsSubset_Null()
        {
            DirectoryServicesPermission dsp = new DirectoryServicesPermission(PermissionState.None);

            Assert.IsTrue(dsp.IsSubsetOf(null), "null");
        }