Caspol: вызов метода из сборки на сетевом ресурсе - PullRequest
1 голос
/ 16 сентября 2010

Я скомпилировал сборку с использованием соглашения о ключе строгого имени Microsoft и пометил ее как «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 Ответ

0 голосов
/ 23 февраля 2011

Разрешения Windows не должны иметь значения - это проблема безопасности доступа к коду.Трудно диагностировать проблему, не зная больше об ошибках, с которыми вы сталкиваетесь.AllowPartiallyTrustedCallersAttribute (APTCA) предназначен для того, чтобы позволить частично доверенному коду вызывать полностью доверенный код, но модель безопасности .NET 4.0 изменила способ работы APTCA.См. Этот пост для подробностей , но в .NET 4.0 сборки APTCA помечены SecurityTransparent и не могут вызывать SecurityCritical сборки, что является уровнем защиты по умолчанию для сборок .NET.

Итак, если ваша сборка APTCA в .NET 4.0 делает что-то привилегированное, например, вызывает код SecurityCritical или утверждает права доступа, то произойдет сбой.Вам следует подумать о том, чтобы сделать его SecuritySafeCritical, чтобы он мог вызываться кодом SecurityTransparent и вызывать код SecurityCritical.Конечно, вы захотите убедиться, что он не может быть использован ненадежными библиотеками, как код APTCA.

...