NetCodeGroup.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. //
  2. // System.Security.Policy.NetCodeGroup
  3. //
  4. // Author(s):
  5. // Jackson Harper ([email protected])
  6. //
  7. // (C) 2002 Jackson Harper, All rights reserved
  8. //
  9. using System;
  10. namespace System.Security.Policy {
  11. public sealed class NetCodeGroup : CodeGroup {
  12. public NetCodeGroup (IMembershipCondition condition)
  13. : base (condition,null)
  14. {
  15. }
  16. //
  17. // Public Properties
  18. //
  19. public override string AttributeString {
  20. get { return null; }
  21. }
  22. public override string MergeLogic {
  23. get { return "Union"; }
  24. }
  25. public override string PermissionSetName {
  26. get { return "Same site Web"; }
  27. }
  28. //
  29. // Public Methods
  30. //
  31. public override CodeGroup Copy ()
  32. {
  33. NetCodeGroup copy = new NetCodeGroup (MembershipCondition);
  34. copy.Name = Name;
  35. copy.Description = Description;
  36. copy.PolicyStatement = PolicyStatement;
  37. foreach (CodeGroup child in Children) {
  38. copy.AddChild (child);
  39. }
  40. return copy;
  41. }
  42. [MonoTODO]
  43. public override PolicyStatement Resolve (Evidence evidence)
  44. {
  45. if (evidence == null)
  46. throw new ArgumentNullException ();
  47. throw new NotImplementedException ();
  48. }
  49. public override CodeGroup ResolveMatchingCodeGroups (Evidence evidence)
  50. {
  51. if (evidence == null)
  52. throw new ArgumentNullException ();
  53. CodeGroup return_group = null;
  54. if (MembershipCondition.Check (evidence)) {
  55. return_group = Copy ();
  56. foreach (CodeGroup child_group in Children) {
  57. CodeGroup matching =
  58. child_group.ResolveMatchingCodeGroups (evidence);
  59. if (matching == null)
  60. continue;
  61. return_group.AddChild (matching);
  62. }
  63. }
  64. return return_group;
  65. }
  66. }
  67. }