1
새 appdomain에 코드를 시작하고 코드 키의 일부에서 레지스트리 키를 확인하는 MMC 스냅인을 만들었습니다. 내가 스냅인에서 키를 확인하면 작동하지만 새 appdomain의 코드가 보안 예외를 throw합니다. 콘솔이나 Windows 응용 프로그램에서 새 appdomain에 코드를로드하면 제대로 작동합니다. 여기 MMC 스냅인의 새 AppDomain이 UAC에 대해 상승 된 권한을 얻지 못했습니다.
코드입니다 : 내가 콘솔 또는 Windows 응용 프로그램에서 새 응용 프로그램 도메인의 코드를로드하는 경우public class SimpleMMCSnapIn : SnapIn
{
public SimpleMMCSnapIn()
{
RegistryKey archerKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft", true); //this call works
Evidence baseEv = AppDomain.CurrentDomain.Evidence;
Evidence newEv = new Evidence(baseEv);
AppDomainSetup setup = new AppDomainSetup { ApplicationBase = "<pathtobin>" };
AppDomain domain = AppDomain.CreateDomain("MigratorDomain", newEv, setup);
domain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
IWork migrator = (IWork)domain.CreateInstanceAndUnwrap("CheckRegistry", "CheckRegistry.CheckRegistry");
migrator.Work();
}
}
[Serializable]
public class CheckRegistry : MarshalByRefObject, IWork
{
public void Work()
{
RegistryKey archerKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft", true); //this call throws a security exception
}
}
이 을 유의하시기 바랍니다, 그것을 잘 작동합니다. 이것이 UMC 질문보다 MMC 스냅인 질문에 더 가깝다고 생각합니다.
어떤 통찰력이 많이 주시면 감사하겠습니다 ...
감사합니다,
브래드
첫번째 라인 : WindowsPrincipal 사용자 = (WindowsPrincipal) Thread.CurrentPrincipal; 보안 오류가 발생했습니다. 'System.Security.Permissions.SecurityPermission, mscorlib, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'형식의 사용 권한 요청이 실패했습니다. – BLogan