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

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

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

НСобходимо Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ нСльзя ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠ΄Π° All Code, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½ΠΈΠΆΠ΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π³Ρ€ΡƒΠΏΠΏΡ‹ для Internet, MyComputer ΠΈ LocalIntranet.

ИзмСнСниС ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ»Π°Π±ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ полномочия, присвоСнныС Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΊΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ снова ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ caspol.exe. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ FullTrust ΠΊ Π·ΠΎΠ½Π΅ Intranet. Π’ этом случаС сначала ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ, которая прСдставляСт Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠ΄Π° Intranet:

caspol.exe -listgroups

Π’Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠ΄Π° Intranet:

Code Groups:

1. All code: Nothing

 1.1 Zone - MyComputer: FullTrust

 1.2. Zone β€” Intranet: LocalIntranet

  1.2.1. All code: Same site Socket and Web.

  1.2.2. All code: Same directory FileIO - Read, PathDiscovery

 1.3. Zone - Internet: Internet

  1.3.1. All code: Same site Socket and Web.

 1.4. Zone β€” Untrusted: Nothing

 1.5. Zone β€” Trusted: Internet

  1.5.1. All code: Same site Socket and Web.

…

ПослС получСния ΠΌΠ΅Ρ‚ΠΊΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° Intranet Π²Π²ΠΎΠ΄ΠΈΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ полномочия Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π°:

caspol.exe -chggroup 1.2 FullTrust

Команда Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ измСнСния ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ систСмы бСзопасности, ΠΈ Ссли Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ снова Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ caspol.exe -listgroups, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ†Π΅ строки Intranet измСнилось Π½Π° FullTrust:

Code Groups:

1. All code: Nothing

 1.1. Zone - MyComputer: FullTrust

 1.2. Zone - Intranet: FullTrust

  1.2.1. All code: Same site Socket and Web.

  1.2.2. All code: Same directory FileIO - Read, PathDiscovery

 1.3. Zone - Internet: Internet

  1.3.1. All code: Same site Socket and Web.

 1.4. Zone β€” Untrusted: Nothing

 1.5. Zone - Trusted: Internet

  1.5.1. All code: Same site Socket and Web.

…

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ мноТСств ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ

МоТно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ мноТСства ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

caspol.exe -addpset CustomPermissionSet permissionset.xml

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° опрСдСляСт, Ρ‡Ρ‚ΠΎ создаСтся Π½ΠΎΠ²ΠΎΠ΅ мноТСство ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ с ΠΈΠΌΠ΅Π½Π΅ΠΌ CustomPermissionSet Π½Π° основС содСрТимого ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° XML. Π€Π°ΠΉΠ» XML Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ стандартный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ PermissionSet. Для справки здСсь прСдставлСн Ρ„Π°ΠΉΠ» мноТСства ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ для мноТСства ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Everything, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π΄ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ²:

<PermissionSet class="NamedPermissionSet" version="1" Name="Everything"

 Description="Allows unrestricted access to all resources covered by built in permissions">

 <IPermission class="EnvironmentΠ Π΅rmission" version="1" Unrestricted="true" />

 <IPermission class="FileDialogPermission" version="1" Unrestricted="true" />

 <IPermission class="FileIOPermission" version="1" Unrestricted="true" />

 <IPermission class="IsolatedStorageFilePermission" version="1" Unrestricted="true" />

 <IPermission class="ReflectionPermission" version="1" Unrestricted="true" />

 <IPermission class="RegistryPermission" version="1" Unrestricted="true" />

 <IPermission class="SecurityPermission" version="1"

Flags="Assertion, UnmanagedCode, Execution, ControlThread, ControlEvidence, ControlPolicy, SerializationFormatter, ControlDomainPolicy, ControlPrincipal, ControlAppDomain, RemotingConfiguration, Infrastructure" />

 <IPermission class="UIPermission" version="1" Unrestricted="true" />

 <IPermission class= "DnsPermission" version="1" Unrestricted="true" />

 <IPermission class="PrintingPermission" version="1" Unrestricted="true" />

 <IPermission class="EventLogPermission" version="1" Unrestricted="true" />

 <IPermission class="SocketPermission" version="1" Unrestricted="true" />

 <IPermission class="WebPermission" version="1" Unrestricted="true" />

 <IPermission class="PerformanceCounterPermission" version="1" "Unrestricted="true" />

 <IPermission class="DirectoryServicesPermission" version="1" Unrestricted="true" />

 <IPermission class="MessageQueuePermission" version="1" Unrestricted="true" />

 <IPermission class="ServiceControllerPermission" version="1" Unrestricted="true" />

</PermissionSet>

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС мноТСства ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ XML, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

caspol.exe -listpset

ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» PermissionSet XML ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ мноТСству ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

caspol.exe -chgpset permissionset.xml CustomPermissionSet

РаспространСниС ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ строгого ΠΈΠΌΠ΅Π½ΠΈ

.NET прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сборку с Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ сборки ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ строгого ΠΈΠΌΠ΅Π½ΠΈ. Π­Ρ‚ΠΎΡ‚ сцСнарий ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ распространСнии сборок Ρ‡Π΅Ρ€Π΅Π· сСти, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ распространСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚.

Если компания, производящая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΆΠ΅Π»Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ своим Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Ρ‚ΠΎ создаСтся сборка ΠΈ для Π½Π΅Π΅ задаСтся устойчивоС имя. УстойчивоС имя Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ сборка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠΈ. Π—Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ это устойчивоС имя Π² свою ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ систСмы бСзопасности доступа ΠΊ ΠΊΠΎΠ΄Ρƒ, Π° сборкС, которая соотвСтствуСт этому ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ устойчивому ΠΈΠΌΠ΅Π½ΠΈ, Π·Π°Ρ‚Π΅ΠΌ явно ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ полномочия. Как ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² Π³Π»Π°Π²Π΅ ΠΎ сборках, устойчивоС имя Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ суммы для Ρ…ΡΡˆ-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Π² сборкС, поэтому имССтся строгоС ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ сборка Π½Π΅ Π±Ρ‹Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° создания ΠΈΠ·Π΄Π°Ρ‚Π΅Π»Π΅ΠΌ устойчивого ΠΈΠΌΠ΅Π½ΠΈ.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ, Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ установки, Ρ‚ΠΎ эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ сборки, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΆΠ΅ Π·Π°Π΄Π°Π½ΠΎ устойчивоС имя. УстойчивоС имя создаСтся ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ дистрибутива ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΡƒ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° установки Π½Π΅ выполняСт Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ устойчивоС имя прСдоставляСт Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡŽ, Ρ‡Ρ‚ΠΎ сборка Π½Π΅ Π±Ρ‹Π»Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π° с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ способ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ этого состоит Π² прСдоставлСнии Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΡƒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ΄Π° прилоТСния, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ β€” копию устойчивого ΠΈΠΌΠ΅Π½ΠΈ сборки. ΠœΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ устойчивоС имя Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, факс ΠΈΠ»ΠΈ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ сообщСниС e-mail), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ сборку ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠΈ Π² ΠΏΡƒΡ‚ΠΈ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΄Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сборку с устойчивым ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ сборки смог ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ устойчивоС имя для прСдоставлСния полномочия FullTrust.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ устойчивыС ΠΈΠΌΠ΅Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ΠΈ хранятся Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для подписи устойчивого ΠΈΠΌΠ΅Π½ΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²Π° ΠΊΠ»ΡŽΡ‡Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ sn.exe (Strong Name Tool β€” ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° устойчивого ΠΈΠΌΠ΅Π½ΠΈ), которая ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² создании ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для управлСния ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΈ устойчивыми ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡, для Ρ‡Π΅Π³ΠΎ Π²Π²Π΅Π΄Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

sn.exe -k key.snk

Π—Π°Ρ‚Π΅ΠΌ Ρ„Π°ΠΉΠ» с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ (key.snk Π² Π΄Π°Π½Π½ΠΎΠΌ случаС) помСстим Π² Ρ‚Ρƒ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΡƒ, Π³Π΄Π΅ Visual Studio создаСт Ρ„Π°ΠΉΠ» Π²Ρ‹Π²ΠΎΠ΄Π° (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠ°ΠΏΠΊΠ° Debug), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΊΠ»ΡŽΡ‡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° сборки. Когда этот Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² AssemblyInfo.cs, остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π½ΠΎΠ²ΠΎ ΡΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ сборку. ΠŸΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ обСспСчиваСт, Π½ΠΎΠ²ΠΎΠ΅ вычислСниС Ρ…ΡΡˆ-значСния ΠΈ сборка защищаСтся ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ:

[assembly: AssemblyKeyFileAttribute("key.snk")]

Π˜Ρ‚Π°ΠΊ, наша сборка ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈ подписана, ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ устойчивоС имя. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠ΄Π° Π½Π° машинС, Π³Π΄Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сборку. Π­Ρ‚Π° Π³Ρ€ΡƒΠΏΠΏΠ° ΠΈΠΌΠ΅Π΅Ρ‚ условиС члСнства, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ соотвСтствия с устойчивым ΠΈΠΌΠ΅Π½Π΅ΠΌ сборки.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ собираСмся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ устойчивоС имя ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° манифСста сборки, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Ρ‚ΠΎ нас Π½Π΅ интСрСсуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ вСрсия сборки ΠΈ Ρ‡Ρ‚ΠΎ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ полномочия FullTrust:

caspol.exe -addgroup 1 -strong -file \bin\debug\SecurityApp10.exe -noname -noversion FullTrust

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΈΠ· любой Π·ΠΎΠ½Ρ‹, Π΄Π°ΠΆΠ΅ Π·ΠΎΠ½Ρ‹ Internet, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ устойчивоС имя прСдоставляСт достаточноС ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ сборка являСтся Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π² Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ caspol.exe -listgroups, ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π½ΠΎΠ²ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠ΄Π° (1.8) ΠΈ Π΅Π΅ ассоциированный ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ (Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ прСдставлСнии): 

1. All code: Nothing

 1.1. Zone β€” MyComputer: FullTrust

 1.2. Zone β€” Intranet: LocalIntranet

  1.2.1. All code: Same site Socket and Web.

  1.2.2. All code: Same directory FileIO β€” Read, PathDiscovery

 1.3. Zone β€” Internet: Internet

  1.3.1. All code: Same site Socket and Web.

 1.4. Zone β€” Untrusted: Nothing

 1.5. Zone β€” Trusted: Internet

  1.5.1. All code: Same site Socket and Web.

 1.6. StrongName β€”

02400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32

E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723

CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622

CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293:

FullTrust

 1.7. StrongName - 00000000000000000400000000000000: FullTrust

1.8. StrongName -

00240000048000009400000006020000002400005253413100040000010001007508D0780C56AF85BA

1BAD6D88E2C653E0A836286682C18134CC989546C1143252795A791F042238040F5627CCC1590ECEA3

0A9CD4780F5F0B29B55C375D916A33FD46B14582836E346A316BA27CD555B8F715377422EF589770E5