2011-11-25 1 views
14

일부 ASP.NET 코드를 .NET 3.5에서 업그레이드하는 동안 다음과 같은 컴파일 경고가 오류로 수신되었습니다. 'System.Security.Permissions.SecurityAction.RequestMinimum'은 사용되지 않습니다."System.Security.Permissions.SecurityAction.RequestMinimum '은"컴파일 오류 "로 어떻게 해결됩니까?

속성이 assebly 수준에서 적용 꿀벌이 있습니다

[assembly: System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.RequestMinimum, Execution=true)] 

또한 코드가 P & P 웹 클라이언트 소프트웨어 공장, specificly ObjectBuilder.WCSFExtensions 라이브러리를 사용하게합니다. 또한이 코드는 일부 역할 공급자 구현을 제공합니다.

이 코드는 다른 프로젝트에서 프레임 워크 코드로 사용되므로 어떤 보안 요구 사항이 있을지 결정하기 란 어렵습니다.


는 그래서 milion의 달러 호주 달러의 질문은

무엇 값은 "System.Security.Permissions.SecurityAction"열거에 사용 할 필요가?

또는이 보안 특성을 적용하는 더 나은 방법이 있습니까?

답변

13

전체 컴파일러 경고를 읽었는지 또는 포함 된 링크를 방문 했습니까? "네이 키드"CLR은 "레거시 모드"전환을하지 않으면 .NET 4.0에서 CAS 권한을 더 이상 제한하지 않으므로 RequestMinimum 사용을 대체 할 수 없습니다. 어셈블리 수준 SecurityPermissionAttribute는 수정하지 말고 제거해야합니다.

MSDN에 비해 4.0 CAS 변경 사항에 대한 자세한 내용은 http://blogs.msdn.com/b/shawnfa/archive/2009/05/21/security-policy-in-the-v4-clr.aspxhttp://blogs.msdn.com/b/shawnfa/archive/2010/02/24/so-is-cas-dead-in-net-4-or-what.aspx을 참조하십시오.

+0

감사합니다. Nicole, 언급 한 기사는 포괄적 인 MSDN 설명서보다 명확한 배경을 제공하지만 명시 적/명백한 진술은 제공하지 않습니다. 특성 제거. 나는 그 속성을 제거 할 때 어떤 영향이 있을지 확신하지 못했습니다. 결국 나는 3.5에서 그 코드를 지금 남겨두기로했다. – Schalk

+0

어셈블리 수준의 RequestMinimum은 지정된 사용 권한이 부여되지 않은 경우 어셈블리를로드하지 않도록 호스트에 지시합니다. 실행 권한에 대한 RequestMinimum은 실행 권한이 없으면 호스트에서 어셈블리의 코드를 실행하지 않으므로 아무 쓸모가 없습니다. 사용 권한이 부여되지 않은 경우의 런타임 동작의 유일한 차이점은 예외의 세부 사항과 발생시기입니다. 그러나 특성이 있는지 여부에 관계없이 어셈블리의 코드가 실행되기 전에 예외가 표시됩니다. –

-2

http://msdn.microsoft.com/en-us/library/ee471421.aspx

그것은 문제를 보인다는 전체에 해당 어셈블리 수준의 선언적 보안은 사용되지 않는 것으로 표시되었습니다입니다. 아마도 이것을 메서드 수준에서 대신 적용 할 수 있을까요?