Разграничение доступа из кода в WCF - Анализ требований Invoke

ОГЛАВЛЕНИЕ

Анализ требований Invoke

Я основал структурированные требования на нескольких элементах. Во-первых, когда это было возможно, я пытался приблизительно представить необработанные требования на клиенте, порождаемые WCF. Впрочем, я все же сгладил острые края WCF, поскольку эта платформа не была разработана для всестороннего использования в условиях частичного доверия. Привязки и случаи, перечисленные на рис. 6, не требуют полного доверия или доступа неуправляемого кода. Довольно многие части .NET Framework были разработаны для использования в среде частичного доверия и в подобном контексте, и я полагался на те же требования, что и они. Наконец, в ряде случаев, чтобы подавить требования полного доверия, я полагался на свой опыт, знакомство с CAS и здравый смысл, сопоставляя действия WCF с требованиями для специальных типов полномочий.

Когда используется привязка WS-Dual, Invoke требует веб-полномочия на подключение к целевой конечной точке, как и в случае со многими другими привязками HTTP. Однако, чтобы позволить размещение объекта обратного вызова, он также требует минимального полномочия ASP.NET на размещение и веб-полномочия на прием вызовов к адресу обратного вызова. При использовании привязки MSMQ Invoke требует полномочия MSMQ на отправку сообщений целевой очереди.

При любой попытке распространить транзакцию клиента на службу Invoke требует неограниченного полномочия распределенной транзакции. В данном случае используется привязка с поддержкой транзакций, поток транзакций включается в привязке и допускается на уровне операций, а у клиента имеется внешняя транзакция.

Любая попытка прокси получить доступ к хранилищу сертификатов вызывает требования полномочия на перечисление хранилищ сертификатов, на открытие хранилища и на перечисление сертификатов в хранилище. Это происходит, когда клиент использует учетные данные сертификата или когда используется защита сообщений, а клиенту необходимо проверить согласованный сертификат службы, или когда клиент не согласует сертификат, а вместо этого просто загружает сертификат для использования для обеспечения безопасности сообщения.

Когда клиент использует диагностику WCF, Invoke требует полномочия среды на чтение имени компьютера и полномочия на файловый ввод/вывод для используемых файлов журнала и трассировки.