2009-06-17 1 views
0

나는 지금까지 중간 신뢰로 운영되는 웹 사이트와 관련된 문제를 발견하지 못했기 때문에 운이 좋았을 것입니다. 필자는 인트라넷 앱을 개발 한 적이 있거나 완전히 신뢰하는 호스팅 회사를 사용하게되었습니다. 하지만 최근 프로젝트에서 사용하도록 요청받은 호스트는 보통 신뢰로 실행되므로 내 앱을 실행 시키려고합니다. 몇 가지 질문 - Windows XP에서 개발할 수 있습니다. 거기에 중간 트러스트 (쉽게 디버깅) 및/또는 web.config 설정에 대한 IIS를 구성 할 수 있습니까? 이 주제에 대한 풍부한 정보가 있으며 학습 곡선이 가파릅니다. Type.GetFields에서의 fieldInfo으로 각각의 fieldInfo (BindingFlags.Instance 또는 BindingFlags.NonPublic 또는 BindingFlags.Public를 들어NonPublic 보통 신뢰에 대한 반영에서 사용 권한 오류가 발생했습니다.

:

둘째, 바이올린을 켜는 코드를 제거하는 많은 후,이 라인이 권한 오류의 원인이 생각)

누구나 가능한 후보가 될 수 있습니까? 그 NonPublic 깃발? 이것은 & 붙여 넣은 코드입니다 (코딩 호러가이 위험을 강조했기 때문에). 루프가 공개 필드와 비공개 필드의 각 필드를 통해 있다고 가정합니다. 보호 된 필드는 중간 신뢰에 대한 반성으로 금지되어 있습니다.

Cheers, Rob.

답변

3

죄송합니다. NonPublic을 사용한 리플렉션은 완전 신뢰와 동일합니다.

어떻게 든 전적인 신뢰를 얻지는 못했지만 NonPublic 리플렉션을 사용하면 내 자신의 코드 신뢰 수준 (쓰기 가능한 문자열 등)을 변경할 수 있습니다.

0

아무에게도 답변하지 않았으므로이 코드를 닫으려고합니다. 또한 코드를 다시 작성하고 시도하는 데 너무 문제가 있음을 입증했습니다. 이 프로그램은 잘못 작성된 것이 아니라 객체 매핑을 위해 리플렉션을 많이 사용하고 솔직히 말해서 완전한 신뢰를 지원하는 호스팅 회사를 찾는 것이 더 쉽습니다. < system.web> 섹션에서

는 다음을 추가 :

2

은 예, XP의 웹 사이트는 매체 신뢰에서 실행되도록 구성 할 수 있습니다

<!-- Case is important: it's Medium, not medium --> 
<trust level="Medium"/> 

그리고 당신은 거기.

대부분의 호스트는 기본값보다 약간의 추가 권한이있는 약간 높은 "중간"신뢰 설정으로 사이트를 실행합니다. 기술자는 자신의 사이트가 어떤 차이가 있는지 말할 수 있어야합니다.

당신이 좀 걸릴 경우

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\web_mediumtrust.config 

을 당신이 적용되는 기본 설정을 볼 수 있습니다.

반사는 중간 신뢰에 제한이 중요한 것들 중 하나입니다 - 비고에서 GetFields 페이지 :

If the requested field is non-public and the caller does not have ReflectionPermission to reflect non-public objects outside the current assembly, this method returns a null reference (Nothing in Visual Basic).

이 전에 널 (null) 당신은 아마 널 (null)를 확인해야한다를 반환 할 가능성이 있기 때문에 그것을 통해 iterating을 시작하거나 FieldInfo가 null이 아니거나 아무것도 사용하지 않는지 확인하십시오.

관련 문제