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.

Другие вопросы по тегам