Question:You are creating a new security policy for an application domain. You write the following lines of code.
PolicyLevel =policy = PolicyLevel::CreateAppDomainLevel();
PolicyStatement =noTrustStatement =
gcnew PolicyStatement(
policy->GetNamedPermissionSet("Nothing"));
PolicyStatement =fullTrustStatement =
gcnew PolicyStatement(
policy->GetNamedPermissionSet("FullTrust"));
You need to arrange code groups for the policy so that loaded assemblies default to the Nothing permission set. If the assembly originates from a trusted zone, the security policy must grant the assembly the FullTrust permission set.
Which code segment should you use?
A CodeGroup =group1 = gcnew FirstMatchCodeGroup(
gcnew ZoneMembershipCondition(SecurityZone::Trusted), fullTrustStatement);
CodeGroup =group2 = gcnew UnionCodeGroup(
gcnew AllMembershipCondition(),
noTrustStatement);
group1->AddChild(group2);
B CodeGroup =group = gcnew FirstMatchCodeGroup(
gcnew AllMembershipCondition(),
noTrustStatement);
C CodeGroup =group = gcnew UnionCodeGroup(
gcnew ZoneMembershipCondition(SecurityZone::Trusted), fullTrustStatement);
D CodeGroup =group1 = gcnew FirstMatchCodeGroup(
gcnew AllMembershipCondition(),
noTrustStatement);
CodeGroup =group2 = gcnew UnionCodeGroup(
gcnew ZoneMembershipCondition(SecurityZone::Trusted), fullTrustStatement);
group1->AddChild(group2);