C# 4.0 이상에서는 메소드 속성을 기반으로 메소드의 허용 호출자를 제한하는 좋은 방법이 있습니까?메소드의 허용 호출자를 제한하는 방법은 무엇입니까?
나는 이것이 CAS에 관한 것이 아니라고 생각했다. 이제 .NET 4.0의 변경 사항은 새 CAS가 어셈블리 수준에서만 적용되며 샌드 박스가 적용된 응용 프로그램에서만 적용됩니다. 내가 무엇을하고 있는지. 이 같은
내가 상상 해요 뭔가 :
[MyDangerousPermission]
public void DoSomethingDangerous()
{
. . .
}
다른 클래스 또는 어셈블리의
:DoSomethingDangerous()
에 어딘가에 호출 스택에
[MyDangerousDemand]
없이 [MyDangerousDemand]
public void AllowedCaller()
{
DoSomethingDangerous();
}
하고, 모든 호출 것 실패 (예 : SecurityException
).
불가능합니다.
(내 주요 응용 프로그램은 중요한 경우 웹 응용 프로그램에 있습니다.)
CAS는 웹 앱을 보호 할 의도가 전혀 없었으며 신뢰할 수없는 코드로부터 보호하기 위해 만들어졌습니다. 사용자가 웹 서버에 코드를 업로드하도록 허용하는 것은 현명하지 못합니다. 하지만 가능하면 하나의 방법이 아니라 업로드하는 전체 어셈블리를 불신하게 될 것입니다. 자신의 코드를 신뢰할 수 없다면 더 큰 문제가 발생할 것입니다. 당신이 단순히 잘못된 구석에서보고있는 높은 확률. –
내 앱에는 업로드 된 코드가 포함되어 있지 않습니다. 그것은 내가 보호하려고하는 시나리오가 아닙니다. – RickNZ