2010-06-08 4 views
2

.NET-App을 실행하려고하면 "하나의 그룹 만 허용"되어 "PolicyException"이 발생합니다. 도구는 기존 설정을 나열하고 선택한 설정을 삭제하도록 허용해야합니다. 목록에 카스톨을 사용하면 도움이되지 않지만 잔인합니다.명령 줄 도구 CASPOL.exe를 대체 할 수 있습니까?

새로운 설정을 정의 할 수있는 간단한 GUI 프론트 엔드가 있지만 기존 설정을 나열하거나 삭제할 수 없습니다.

카스 폴은 악몽이기 때문에 아무도 선택에 의해 사용하지 않습니다. .NET 1.1을 사용하면 Microsoft는 구성 유틸리티를 제공하지만 .NET 2.0의 경우에는 아무 것도 발견하지 못했습니다.

답변

1

2.0에 대해서는 구성 애플릿도 있고, 2.0 SDK와 함께 제공되는 것 같아요. 설치했다면 Admin Tools에 있어야하며 "Microsoft .NET Framework 2.0 Configuration"이라고해야합니다.

0

유틸리티는 .Net 2.0의 SDK에 속합니다. 설치되어 있는지 확인하십시오.

또한 .Net 3.5 sp1 이상에서 CAS를 사용하여 몇 가지 문제점을 해결할 수 있습니다.

static void SetPermission(string target) { 
    try { 
     // Find the machine policy level 
     PolicyLevel machinePolicyLevel = null; 
     System.Collections.IEnumerator policyHierarchy = SecurityManager.PolicyHierarchy(); 

     while (policyHierarchy.MoveNext()) { 
      PolicyLevel level = (PolicyLevel)policyHierarchy.Current; 
      if (level.Label == "Machine") { 
       machinePolicyLevel = level; 
       break; 
      } 
     } 


     if (machinePolicyLevel == null) { 
      throw new ApplicationException(
       "Could not find Machine Policy level. Code Access Security " + 
       "is not configured for this application." 
       ); 
     } 

     // Create a new FullTrust permission set 
     PermissionSet permissionSet = new NamedPermissionSet("FullTrust"); 

     IMembershipCondition membershipCondition = new UrlMembershipCondition(target); 

     // Create the code group 
     PolicyStatement policyStatement = new PolicyStatement(permissionSet); 
     CodeGroup codeGroup = new UnionCodeGroup(membershipCondition, policyStatement); 
     codeGroup.Description = "Custom code group created by PermSet utility."; 
     codeGroup.Name = "CustomCodeGroup-" + Guid.NewGuid().ToString(); 

     // Add the code group 
     machinePolicyLevel.RootCodeGroup.AddChild(codeGroup); 

     // Save changes 
     SecurityManager.SavePolicy(); 
    } 
    catch (Exception ex) { 
     Console.WriteLine(); 
     Console.WriteLine(ex.ToString()); 
     throw; 
    } 
} 
+0

감사합니다. 작동합니다! 이 도구는 "Mscorcfg.msc"이며 SDK와 함께 설치되었습니다 (하이퍼 링크의 경우 tx). C : \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin 어쨌든 복잡하기는하지만 모든 설정을 다시 설정하고 필요한 경우 만 설정하면 PolicyException이 사라집니다. 새로운. – tantran

1

당신은이 코드 조각으로 자신의 도구 (GUI 또는 명령 줄을) 할 수 있습니다. 2010 년 있지만이 파일을 찾을 수 없습니다.

0

중인 Mscorcfg 비주얼 스튜디오의 이후 릴리스에 제공 한 것으로 보이지 않는다 :