문제

을 만들 때 Azure ASP.NET 응용 프로그램에 의하여,기본입니다.NET 신뢰 수준은 전체 신뢰합니다.나는 항상 그것을 변경하는 Windows Azure 부분적인 신뢰와 유사한 ASP.NET's 통 신뢰 수준입니다.

당신은 그것을 할 수 있습에 의해 하나는 GUI 를 사용하여 선택할 경우 속성 역할에 대해 설정 enableNativeCodeExecution 거짓에서 정의 파일(.csdef)아래와 같:

<WebRole name="ServiceRuntimeWebsite" enableNativeCodeExecution="false">

보안 의식이 있는 개발자가 원하는 기본적으로 실행하는 내 응용 프로그램에서 부분적인 신뢰 모드를 제공하는 높은 수준의 보안을 보장합니다.해야 하는 경우 다음과 같은 코드를 사용하면 반사 또는 P/호출,개발자로 만들고 싶다는 결정을 낮추는 신뢰 수준을 나 자신에 의하여.

나는 이유가 있어 Microsoft 사용하기로 결정체를 신뢰으로 기본입니다.NET 신뢰 수준,내가 실패하는 그것을 참조하십시오.당신이 알고 있는 경우는 이유,또는 당신이 생각하는 당신이 그것을 알고,알려주시기 바랍니다.

도움이 되었습니까?

해결책

전체 신뢰는 .NET 반사를 위해 P/호출에만 필요하지 않습니다. 결론적으로, 거의 모든 광범위한 라이브러리가 필요하기 때문에 거의 모든 적당한 크기의 앱이 완전한 신뢰가 필요합니다 (예 : nhibernate). 사실, 나는 그에게 묻고있다 정반대의 질문 Azure 포럼에서도.

다른 팁

완전 또는 부분 신뢰 문제는 응용 프로그램이 실행되는 환경과 관련이 있습니다. 환경 및 어셈블리의 통제 및/또는 "소유권"이 많을수록 완전한 트러스트 설정을 갖는 것이 더 허용됩니다.

예를 들어, Azure 웹 사이트 (2012 년 7 월 기능) 및 WordPress 또는 Umbraco를 모방하는 경우 웹 사이트를 사용하면 임의의 어셈블리 플러그인을 다운로드하여 설치할 수있게되면 부분적으로 트러스트 된 환경을 확보하는 것이 중요합니다. 제어하거나 소유하지 않는 플러그인 중 하나에 맬웨어가 포함되어있을 수 있습니다. 이는 웹 사이트의 보안 및 안정성에 영향을 줄뿐만 아니라 일부는 귀하와 관련이없는 다른 (다중 테넌트) 호스팅 웹 사이트에 영향을 미친다고 주장 할 수 있습니다.

확실히 귀하의 웹 사이트는 Log4Net 또는 StructureMap과 같은 타사 라이브러리에 의존하지만 보안 영향과 관련하여 문제가되지 않는 매우 잘 알려진 심사 라이브러리입니다. Ergo, Azure Web-Role (훨씬 적은 "다중 테넌트"유형 사건)을 실행하고있는 경우 "신뢰할 수있는"타사 앱을 실행하고 있다면, 전체 트러스트로 실행하는 데 문제가 없습니다.

그렇다,불행히도 그것은 여전히 매우 어렵(지 않으면 불가능)를 쓰다.NET 실행하는 애플 리케이션 부분에서 신뢰합니다.

우리가 필요 훨씬 더 나은 기술과 도구(아 CAS.NET)

중간 신뢰는 이제 공식적으로 쓸모 없기 때문입니다. Visual Studio에서 새로운 웹 프로젝트를 시작하면 이미 완전한 신뢰가 필요하며 부분 신뢰가 작동하지 않습니다). Microsoft의 말 : 중간 신뢰에 의존하지 말고 대신 별도의 애플리케이션 풀에서 신뢰할 수없는 응용 프로그램을 분리하십시오.

출처 :

StackoverFlow 답변 : 인용 응답 ASP.NET 팀

Microsoft : ASP.NET 부분 신뢰는 응용 프로그램 격리를 보장하지 않습니다.

Microsoft : ASP.NET 웹 개발 모범 사례

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top