Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C# для профСссионалов. Π’ΠΎΠΌ IIΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 107

Автор Π‘ΠΈΠΌΠΎΠ½ Робинсон

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ интСрСс вопрос, ΠΊΠ°ΠΊ дСйствуСт caspol.exe, ΠΊΠΎΠ³Π΄Π° машина ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько установок .NET. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΈΡ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ… выполняСмая копия caspol.exe Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ бСзопасности Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для связанной с Π½Π΅ΠΉ установкой .NET. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ простым ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ бСзопасности, Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ .NET ΠΏΡ€ΠΈ установкС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вСрсий.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π³Ρ€ΡƒΠΏΠΏ ΠΊΠΎΠ΄Π° сборки

Π‘Π±ΠΎΡ€ΠΊΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ ΠΊΠΎΠ΄Π° Π² зависимости ΠΎΡ‚ условий члСнства. Если Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Π³Ρ€ΡƒΠΏΠΏ ΠΊΠΎΠ΄Π° ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ сборку с web-сайта https://intranet/, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π‘Π±ΠΎΡ€ΠΊΠ° являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° (All Code); Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· локальной сСти, Ρ‚ΠΎ ΠΎΠ½Π° являСтся Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π»Π΅Π½ΠΎΠΌ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° Intranet, Π½ΠΎ вслСдствиС Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π±Ρ‹Π»Π° Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта https://intranet, Ρ‚ΠΎ Π΅ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСтся FullTrust, Ρ‡Ρ‚ΠΎ соотвСтствуСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ.

Π›Π΅Π³ΠΊΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π°, Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся сборка, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

caspol.exe -resolvegroup assembly.dll

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для сборки Π½Π° локальном дискС создаСт Π²Ρ‹Π²ΠΎΠ΄:

Microsoft (R) .NET Framework CasPol 1.0.2728.0

Copyright (с) Microsoft Corp 1999-2001. All rights reserved.


Level = Enterprise

Code Groups:

1. All code: FullTrust


Level = Machine

Code Groups:

1. All code: Nothing

 1.1. Zone β€” MyComputer: FullTrust


Level = User

Code Groups:

1. All code: FullTrust


Success

МоТно Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° пСрСчислСны Π½Π° Ρ‚Ρ€Π΅Ρ… уровнях β€” Enterprise, Machine ΠΈ User (ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅, Машина ΠΈ ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ). Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ сосрСдоточимся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Machine, Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим ΠΏΠΎΠ·ΠΆΠ΅. Если Π²Ρ‹ ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅ Π·Π½Π°Ρ‚ΡŒ ΠΎΠ± ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ трСмя уровнями, Ρ‚ΠΎ эффСктивныС полномочия, прСдоставляСмыС сборкС, ΡΠ²Π»ΡΡŽΡ‚ΡΡ пСрСсСчСниСм ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ. НапримСр, Ссли ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠ΅ FullTrust ΠΈΠ· Π·ΠΎΠ½Ρ‹ Internet ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Enterprise, Ρ‚ΠΎ всС полномочия ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для ΠΊΠΎΠ΄Π° ΠΈΠ· Π·ΠΎΠ½Ρ‹ Internet ΠΈ настройки Π΄Π²ΡƒΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ становятся нСподходящими.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для Ρ‚ΠΎΠΉ ΠΆΠ΅ сборки, Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· HTTP Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС. ΠœΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ сборка являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²Π°:

caspol.exe -resolvegroup http://server/assemply.dll

Microsoft (R) .NET Framework CasPol 1.0.2728.0

Copyright (с) Microsoft Corp 1999-2001. All rights reserved.


Level = Enterprise

Code Groups:

1. All code: FullTrust


Level = Machine

Code Groups:

1. All code: Nothing

 1.1. Zone β€” Internet: Internet

  1.1.1. All code: Same site Socket and Web.


Level = User

Code Groups:

1. All code: FullTrust


Success

Для сборки Π² этот Ρ€Π°Π· ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ пСрСсСчСниС ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ оставляСт полномочия Internet ΠΈ Same site Socket.

ΠŸΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΡ доступа ΠΊ ΠΊΠΎΠ΄Ρƒ ΠΈ мноТСства ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбя администратором ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ бСзопасности Π² сСти ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… машин большого прСдприятия. Π’ Ρ‚Π°ΠΊΠΎΠΉ срСдС вСсьма ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для CLR ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΎ ΠΊΠΎΠ΄Π΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ, Π½ΠΎ Π² Ρ€Π°Π²Π½ΠΎΠΉ стСпСни администратор Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ строго ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄Ρƒ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сотнях машин, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ управляСт, Ссли CLR Π·Π½Π°Π΅Ρ‚, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ ΠΏΡ€ΠΈΡˆΠ΅Π». ИмСнно здСсь Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ свою Ρ€ΠΎΠ»ΡŒ полномочия.

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ сборка сопоставлСна с Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π°, CLR просматриваСт ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ систСмы бСзопасности для опрСдСлСния прСдоставляСмых сборкС ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ. Π­Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° систСму бСзопасности ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² Windows 2000. ΠŸΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΡ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π΅ ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, Π° ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ. Π’ΠΎ ΠΆΠ΅ самоС справСдливо для сборок: полномочия ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ ΠΊΠΎΠ΄Π°, Π° Π½Π΅ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ сборкам, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ систСмы бСзопасности Π² .NET Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ простой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ.

ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° бСзопасности опрСдСляСт, ΠΊΠ°ΠΊΠΈΠ΅ дСйствия Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ сборками Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΊΠΎΠ΄Π°. Π”Π°Π²Π°ΠΉΡ‚Π΅ обсудим полномочия доступа ΠΊ ΠΊΠΎΠ΄Ρƒ, прСдоставляСмыС CLR. ΠΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ список ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ возмоТности ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ полномочия доступа ΠΊ ΠΊΠΎΠ΄Ρƒ:

β–‘ DirectoryServicesPermission β€” ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ доступа ΠΊ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ (Active Directory) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ классов System.DirectoryServices.

β–‘ DnsPermission β€” использованиС систСмы ΠΈΠΌΠ΅Π½ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² TCP/IP (DNS).

β–‘ EnvironmentPermission β€” Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния.

β–‘ EventLogPermission β€” Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Π² ΠΆΡƒΡ€Π½Π°Π» событий.

β–‘ FileDialogPermission β€” доступ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Open.

β–‘ FileIOPermission β€” Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ», Π° Ρ‚Π°ΠΊΠΆΠ΅ созданиС ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΎΠΊ).

β–‘ IsolatedStorageFilePermission β€” доступ ΠΊ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ систСмам.

β–‘ IsolatedStoragePermission β€” доступ ΠΊ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ памяти; памяти, которая ассоциируСтся с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ аспСктами идСнтичности ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ web-сайт, сигнатура ΠΈΠ»ΠΈ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ.

β–‘ MessageQueuePermission β€” использованиС ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ сообщСний с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Microsoft Message Queue.

β–‘ OleDbPermission β€” доступ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ OLE DB.

β–‘ PerformanceCounterPermission β€” использованиС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

β–‘ PrintingPermission β€” доступ ΠΊ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ.

β–‘ ReflectionPermission β€” доступ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΈΠΏΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ System.Reflection.

β–‘ RegistryPermission β€” Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись, созданиС ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² рССстрС.

β–‘ SecurityPermission β€” Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, объявлСниС ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ, ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ нСуправляСмому ΠΊΠΎΠ΄Ρƒ, пропуск ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ полномочия.

β–‘ ServiceControllerPermission β€” ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ доступа (для выполнСния ΠΈΠ»ΠΈ остановки) ΠΊ слуТбам Windows.

β–‘ SocketPermission β€” созданиС ΠΈΠ»ΠΈ принятиС соСдинСния TCP/IP Π½Π° транспортном адрСсС.

β–‘ SQLClientPermission β€” доступ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… SQL.

β–‘ UIPermission β€” доступ ΠΊ интСрфСйсу ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

β–‘ WebPermission β€” осущСствлСниС ΠΈΠ»ΠΈ принятиС соСдинСния с/ΠΈΠ· Web.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ любого ΠΈΠ· этих классов ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ опрСдСляСтся Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ПозТС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π½Π΅ просто доступ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ доступа.

Π‘ практичСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся всС ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ использования рСсурсов, связанных с полномочиями Π² этом спискС, ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок try-catch, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ…ΡƒΠ΄ΡˆΠ°Π»ΠΎΡΡŒ постСпСнно, Ссли Π΅ΠΌΡƒ придСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ полномочиями. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ прилоТСния Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации, Π½Π΅ стоит ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ систСмы бСзопасности, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΎΡΡŒ. НапримСр, Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ диску, закончится Π»ΠΈ ΠΎΠ½ΠΎ ΠΈΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ способом?

Π‘Π±ΠΎΡ€ΠΊΠ° связываСтся с нСсколькими Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ полномочия сборки Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ систСмы бСзопасности ΡΠ²Π»ΡΡŽΡ‚ΡΡ объСдинСниСм всСх ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ, прСдоставлСнных всСм Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ эта сборка ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, каТдая Π³Ρ€ΡƒΠΏΠΏΠ° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ соотвСтствуСт сборка, Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ допустимых дСйствий сборки. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π°, располоТСнныС Π½ΠΈΠΆΠ΅ Π² Π΄Π΅Ρ€Π΅Π²Π΅, часто ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ свободныС полномочия, Ρ‡Π΅ΠΌ располоТСнныС Π²Ρ‹ΡˆΠ΅.

БущСствуСт Π΄Ρ€ΡƒΠ³ΠΎΠ΅ мноТСство ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ располагаСт CLR Π½Π° основС идСнтичности ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΈ ΠΏΡ€Π°Π²Π° Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прСдоставлСны явно, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ связаны нСпосрСдствСнно со ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ CLR сопоставляСт со сборкой, ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ полномочиями идСнтичности (Identity Permisssions). Π’ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° классов для ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ идСнтичности:

β–‘ PublisherIdentityPermission β€” цифровая подпись издатСля ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

β–‘ SiteIdentityPermission β€” располоТСниС web-сайта, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΊΠΎΠ΄.

β–‘ StrongNameIdentityPermission β€” устойчивоС имя сборки.

β–‘ URLIdentityPermission β€” URL, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΊΠΎΠ΄ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ https://)

β–‘ ZoneIdentityPermission β€” Π·ΠΎΠ½Π°, ΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ мСстом происхоТдСния сборки.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ полномочия ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π²ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ .NET прСдоставляСт Ρ‚Π°ΠΊΠΆΠ΅ мноТСства ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ (Permission Sets). Π­Ρ‚ΠΎ списки ΠΏΡ€Π°Π² доступа ΠΊ ΠΊΠΎΠ΄Ρƒ, сгруппированныС Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΌ мноТСствС. Π’ΠΎΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ мноТСства ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² систСмС:

β–‘ FullTrust β€” Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° полномочия.

β–‘ Execution β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ выполнСния, Π½ΠΎ Π±Π΅Π· доступа ΠΊ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌ рСсурсам.

β–‘ Nothing β€” Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ выполнСния.