Caspol: вызов метода из сборки на сетевом ресурсе
Я скомпилировал сборку, используя соглашение о ключе Microsoft Strong Name, и пометил ее как "AllowPartiallyTrusted".
Я тестирую приложение против этой сборки с двух разных машин. Один работает под управлением Windows 2003 Server, а другой компьютер под управлением Windows XP Professional.
Я могу вызывать методы сборки с сервера Win 2003, но когда дело доходит до компьютера с XP, происходит сбой.
Я пытался установить INTRANET ZONES в FULL TRUST, но это не сработало для XP. Одно из различий между XP и сервером 2003 состоит в том, что XP является 32-битной и на ней установлены фреймворки 1 -4.0. На 2003 установлен только 3.5 SP1.
Я являюсь администратором на машине с XP, но не на машине с 2003, где она работает.Это сводит меня с ума.
1 ответ
Разрешения Windows не должны иметь значения - это проблема безопасности доступа к коду. Трудно диагностировать проблему, не зная больше об ошибках, с которыми вы сталкиваетесь. AllowPartiallyTrustedCallersAttribute (APTCA) предназначен для того, чтобы позволить частично доверенному коду вызывать полностью доверенный код, но модель безопасности.NET 4.0 изменила способ работы APTCA. Подробности смотрите в этом блоге, но в.NET 4.0 сборки APTCA помечены SecurityTransparent
и не могу позвонить SecurityCritical
сборок, который является уровнем защиты по умолчанию для сборок.NET.
Итак, если ваша сборка APTCA в.NET 4.0 делает что-то привилегированное, например, вызов SecurityCritical
код или утверждение разрешений, то это не удастся. Вы должны рассмотреть возможность сделать это SecuritySafeCritical
так что это может быть вызвано SecurityTransparent
код и вызов SecurityCritical
код. Конечно, вы захотите убедиться, что он не может быть использован ненадежными библиотеками, как код APTCA.