Visual Studio가 관리자 계정으로 실행될 때 아래 코드가 올바르게 작동합니다. 하지만 VS가 권한이없는 계정에서 실행될 때 Save() 메서드는 UnauthorizedAccessException을 throw하지만이 경우에는 Demand()가 SecurityException을 throw하지 않는 이유를 이해하지 못합니다.파일에 대한 쓰기 시도가 UnauthorizedAccessException을 throw하는 동안 요구가 예외를 throw하지 않음
2
A
답변
1
FileIOPermission은 Windows 파일 시스템의 사용자 권한이 아니라 .NET 코드 액세스 보안 모델에서 코드 사용 권한을 확인합니다. 코드가 관리자 계정으로 실행되기 때문에 코드에는 적절한 FileIOPermission이있을 것이므로 다른 사용자 계정으로 실행될 때 요구 사항이 통과되는 것은 당연한 일입니다.
FileIOPermission에 대한 요구가 통과하기 때문에 코드는 관리자가 아닌 시나리오에서 불충분 한 사용자 권한으로 실행될 때 파일을 저장하려고 시도합니다. UnauthorizedAccessException은 운영 체제가 대상 자원에 대한 액세스를 거부 할 때 예상되는 예외 유형입니다.
permission.Assert()를 사용해 보셨습니까? – Bobby5193
시도했습니다. 같은 결과 : UnauthorizedAccessException – EngineerSpock