// </snippet5> // <snippet3> public static void SetNetCodeGroupAccess() { const string userPolicyLevel = "User"; // Locate the User policy level. PolicyLevel level = null; System.Collections.IEnumerator ph = System.Security.SecurityManager.PolicyHierarchy(); while (ph.MoveNext()) { level = (PolicyLevel)ph.Current; if (level.Label == userPolicyLevel) { break; } } if (level.Label != userPolicyLevel) { throw new ApplicationException("Could not find User policy level."); } // <snippet7> IMembershipCondition membership = new UrlMembershipCondition(@"http://www.contoso.com/*"); NetCodeGroup codeGroup = new NetCodeGroup(membership); // Delete default settings. codeGroup.ResetConnectAccess(); // Create an object that represents access to the FTP scheme and default port. CodeConnectAccess a1 = new CodeConnectAccess(Uri.UriSchemeFtp, CodeConnectAccess.DefaultPort); // Create an object that represents access to the HTTPS scheme and default port. CodeConnectAccess a2 = new CodeConnectAccess(Uri.UriSchemeHttps, CodeConnectAccess.DefaultPort); // Create an object that represents access to the origin scheme and port. CodeConnectAccess a3 = CodeConnectAccess.CreateOriginSchemeAccess(CodeConnectAccess.OriginPort); // Add connection access objects to the NetCodeGroup object. codeGroup.AddConnectAccess(Uri.UriSchemeHttp, a1); codeGroup.AddConnectAccess(Uri.UriSchemeHttp, a2); codeGroup.AddConnectAccess(Uri.UriSchemeHttp, a3); // </snippet7> // Provide name and description information for caspol.exe tool. codeGroup.Name = "ContosoHttpCodeGroup"; codeGroup.Description = "Code originating from contoso.com can connect back using the FTP or HTTPS."; // Add the code group to the User policy's root node. level.RootCodeGroup.AddChild(codeGroup); // Save the changes to the policy level. System.Security.SecurityManager.SavePolicy(); }
// </snippet6> public static void CreateNetCodeGroup() { IMembershipCondition membership = new UrlMembershipCondition(@"http://www.contoso.com/*"); NetCodeGroup codeGroup = new NetCodeGroup(membership); // Display default settings. DisplayConnectionAccessRules(codeGroup); // Delete default settings. codeGroup.ResetConnectAccess(); // Create an object that represents access to the ftp scheme and default port. CodeConnectAccess a1 = new CodeConnectAccess(Uri.UriSchemeFtp, CodeConnectAccess.DefaultPort); // Create an object that represents access to the HTTPS scheme and default port. CodeConnectAccess a2 = new CodeConnectAccess(Uri.UriSchemeHttps, CodeConnectAccess.DefaultPort); // Create an object that represents access to the origin scheme and port. CodeConnectAccess a3 = CodeConnectAccess.CreateOriginSchemeAccess(CodeConnectAccess.OriginPort); codeGroup.AddConnectAccess(Uri.UriSchemeHttp, a1); codeGroup.AddConnectAccess(Uri.UriSchemeHttp, a2); codeGroup.AddConnectAccess(Uri.UriSchemeHttp, a3); Console.WriteLine("New NetCodeGroup settings:"); DisplayConnectionAccessRules(codeGroup); }
public static void NetCodeGroupCallMethods() { NetCodeGroup ncg = new NetCodeGroup(new GacMembershipCondition()); string teststring = NetCodeGroup.AbsentOriginScheme; teststring = NetCodeGroup.AnyOtherOriginScheme; ncg.AddConnectAccess("test", new CodeConnectAccess("test", 0)); CodeGroup cg = ncg.Copy(); bool equals = ncg.Equals(new object()); System.Collections.DictionaryEntry[] de = ncg.GetConnectAccessRules(); int hash = ncg.GetHashCode(); ncg.ResetConnectAccess(); PolicyStatement ps = ncg.Resolve(new Evidence()); cg = ncg.ResolveMatchingCodeGroups(new Evidence()); }