2011-11-22 4 views
1

나는 중간 신탁 예전 친구와 Windows 서비스를 실행하고 싶지만, 내가 찾을 수있는 모든 문헌은 ASP.NET에 대한 중간 트러스트에서 exe 또는 windows 서비스를 어떻게 실행할 수 있습니까?

<system.web> 
    <trust level="Medium"/> 
</system.web> 

를 사용하여 제안한다, 그래서 나는 그것을 시도했지만 How do you check if you are running in Medium Trust environment in .NET?에서 코드를 사용하여 여전히에 나타납니다 완전 신뢰를 가져라. 이 작업을 수행하는 올바른 방법은 무엇입니까?

+0

어떤 버전의 .NET? 또한 테스트 또는 배포 용입니까? 후자의 경우 심층 방어를 위해 자신의 코드 사용 권한을 제한하려고하거나 코드에 의한 잠재적 인 악의적 인 활동을 방지하기 위해 다른 사람의 코드 사용 권한을 제한하려고합니까? –

+0

타사 코드의 사용 권한을 제한하십시오. 이상적으로 Topshelf를 사용하여 타사 서비스를 호스팅하고 싶습니다. – mcintyre321

답변

3

사용 가능한 접근 방식은 .NET 버전에 따라 다릅니다. .NET 4.0 이전의 CLR은 모든 어셈블리에 대한 사용 권한을 제한 할 수있는 CAS 정책을 시행했습니다. 그러나 .NET 4.0에서 CLR은 특정 응용 프로그램의 app.config 파일에서 NetFx40_LegacySecurityPolicy 요소를 통해 활성화하지 않으면 CAS 정책을 더 이상 적용하지 않습니다. 이 방법은 현재 사용할 수 있지만 향후 .NET Framework 버전에서는 지원되지 않을 수 있습니다.

새로운 사용 권한 제한 스타일은 "기본"CLR 이외의 호스트에서 사용 권한을 제한하는 것입니다. 이것이 ASP.NET이하는 일이며이를 제대로 구현하려면 대체 호스팅 플랫폼이해야 할 일입니다. 이러한 사용 권한 제한의 가장 간단한 메커니즘은 sandboxed appdomain입니다. 나는 Topshelf에 익숙하지 않으며 그들의 소개 기사는 그들이 이것을지지하는지 명확히하지 않는다. 그러나 아마도 비교적 단순한 기능 향상 일 것이므로 기능을 요청할 가치가 있습니다.

+0

감사합니다. 훌륭한 대답입니다. – mcintyre321