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

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

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

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

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

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

β–‘ LocalIntranet β€” ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для локальной ΠΈΠ½Ρ‚Ρ€Π°Π½Π΅Ρ‚, подмноТСство ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ мноТСства ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ. МоТно ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ это мноТСство ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ.

β–‘ Internet β€” ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΊΠΎΠ΄Π° нСизвСстного происхоТдСния. Администратор ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ полномочиями Π² этом мноТСствС ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ.

β–‘ Everything β€” всС стандартныС полномочия, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ полномочия ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊΠΎΠ΄Π°. Администратор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‡ΡŒΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡ€Π°Π²ΠΎ Π² этом мноТСствС ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ строТС.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ· этих ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… мноТСств ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ опрСдСлСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ€Π΅Ρ… послСдних, Π° ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ фиксированными ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ.

ΠŸΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΡ идСнтичности Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² мноТСства ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ CLR являСтся СдинствСнным ΡƒΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡Π΅Π½Π½Ρ‹ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄Ρƒ ΠΏΡ€Π°Π²Π° идСнтичности. НапримСр, Ссли Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŽ, Ρ‚ΠΎ ΠΌΠ°Π»ΠΎ смысла со стороны администратора ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΅ΠΌΡƒ полномочия идСнтичности, связанныС с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»Π΅ΠΌ. CLR Π΄Π°Π΅Ρ‚ ΠΏΡ€Π°Π²Π°, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ сборки

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, написанноС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Microsoft, ΠΈ ΠΌΡ‹ пытаСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ использовалось. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠΏΠΈΠΈ ΠΊΠΎΠ΄Π°, хранящСйся локально, поэтому ΠΎΠ½ΠΎ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π΅Π΅, ΠΈ ΠΊΠΎΠ΄ загруТаСтся Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ кэш сборок. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ сцСнарии для ΠΊΠΎΠ΄Π° ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, подписавшСй сборку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСртификата, ΠΌΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ члСнство Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° сборки выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Богласно ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ΅ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° All Code ΠΈ Internet ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ полномочия, Π° члСнство Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ прСдоставляСт сборкС ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠ΅ FullTrust. ΠŸΡ€Π°Π²Π° всСх Π³Ρ€ΡƒΠΏΠΏ ΠΊΠΎΠ΄Π° ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² создании ΠΎΠ±Ρ‰Π΅Π³ΠΎ эффСктивного полномочия самого высокого уровня. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, каТдая Π³Ρ€ΡƒΠΏΠΏΠ° ΠΊΠΎΠ΄Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ сборка, вносит Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ полномочия.

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

caspol.exe -resolveperm assembly.dll

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ это Π½Π° сборкС ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΠΌ прСдоставлСнныС Π΅ΠΉ полномочия идСнтичности ΠΈ доступа ΠΊ ΠΊΠΎΠ΄Ρƒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΊ Π½Π΅ΠΉ доступ Ρ‡Π΅Ρ€Π΅Π· Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ‚Ρ€Π°Π½Π΅Ρ‚. Если ΠΌΡ‹ Π²Π²Π΅Π΄Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ полномочия доступа ΠΊ ΠΊΠΎΠ΄Ρƒ ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ‚Ρ€ΠΈ полномочия идСнтичности:

caspol.exe -resolveperm http://intranet/assembly.dll


Microsoft (R) .NET Framework CasPol 1.0.xxxx.x

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


Resolving permissions for level = Enterprise

Resolving permissions for level = Machine

Resolving permissions for level = User


Grant =

<PermissionSet class="System.Security.PermissionSet" version="1">

 <IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=1.0.xxxx.x, Culture=neutral, PublicKeyToken=b77a5c561934e089"

  version="1"

  Read="USERNAME;TEMP;TMP" />

 <IPermission class ="System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.0.xxxx.x, Culture=neutral, PublicKeyToken=b77a5c561934e089"

  version="1"

  Unrestricted="true" />

 <IPermission class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib Version=1.0.xxxx.x, Culture=neutral, PublicKeyToken=b77a5c561934e089"

  version="1"

  Allowed="AssemblyIsolationByUser"

  UserQuota="9223372036854775807"

  Expiry = "9223372036854775807"

  Permanent="True" />

 <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=1.0.xxxx.x, Culture=neutral, PublicKeyToken=b77a5c561934e089"

  version="1"

  Flags="ReflectionEmit" />

 <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=1.0.xxxx.x, Culture=neutral, PublicKeyToken=b77a5c561934e089"

  version="1"

  Flags="Assertion, Execution, RemotingConfiguration" />

 <IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=1.0.xxxx.x, Culture=neutral, PublicKeyToken=b77a5c561934e089"

  version="1"

  Unrestricted="true" />

 <IPermission class="System.Net.WebPermission, System, Version=1.0.xxxx.x, Culture=neutral, PublicKeyToken=b77a5c561934e089"

  version="1">

  <ConnectAccess>

   <URI uri="(https|http)://intranet/.*"/>

  </ConnectAccess>

 </IPermission>

 <IPermission class="System.Net.DnsPermission, System, Version=1.0.xxxx.x, Culture=neutral, PublicKeyToken=b77a5c561934e089"

  version="1"

  Unrestricted="true"/>

 <IPermission class="System.Drawing.Printing.PrintingPermission, System.Drawing, Version=1.0.xxxx.x, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

  version="1"

  Level="DefaultPrinting" />

 <IPermission сlass="System.Diagnostics.EventLogPermission, System, Version=1.0.xxxx.x, Culture=neutral, PublicKeyToken=b77a5c561934e089"

  version="1">

  <Machine name="." access="Instrument" />

 </IPermission>

 <IPermission class="System.Security.Permissions.SiteIdentityPermission, mscorlib, Version=1.0.xxxx.x, Culture=neutral, PublicKeyToken=b77a5c561934e089"

  version="1"

  Site="intranet" />

 <IPermission class="System.Security.Permissions.UrlIdentityPermission, mscorlib, Version=1.0.xxxx.x, Culture=neutral, PublicKeyToken=b77a5c561934e089"

  version="1"

  Url="http://intranet/assembly.dll" />

 <IPermission сlass="System.Security.Permissions.ZoneIdentityPermission, mscorlib, Version=1.0.xxxx.x, Culture=neutral, PublicKeyToken=b77a5c561934e089"

  version="1"

  Zone="Intranet" />

</PermissionSet>


Success

Π­Ρ‚ΠΎΡ‚ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π° XML, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠ΅ класс, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ класс сборку, Π²Π΅Ρ€ΡΠΈΡŽ полномочия ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свои собствСнныС полномочия, большС ΠΎΠ± этом Π±ΡƒΠ΄Π΅Ρ‚ сказано ΠΏΠΎΠ·ΠΆΠ΅. МоТно Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ идСнтичности содСрТит Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, скаТСм, ΠΎ классС UrlIdentityPermission, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ доступ ΠΊ URL ΠΊΠΎΠ΄Π°.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ Π²Ρ‹Π²ΠΎΠ΄Π° caspol.exe Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ полномочия Π½Π° уровнях Enterprise, Machine ΠΈ User ΠΈ Π·Π°Ρ‚Π΅ΠΌ пСрСчисляСт Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ прСдставлСнныС ΠΏΡ€Π°Π²Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ этому вопросу.

Π£Ρ€ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ: машина, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈ прСдприятиС

Π”ΠΎ сих ΠΏΠΎΡ€ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»Π°ΡΡŒ Π² контСкстС ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ систСмы бСзопасности для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ для всСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ поэтому .NET прСдоставляСт Π½Π΅ ΠΎΠ΄ΠΈΠ½, Π° Ρ‚Ρ€ΠΈ уровня Π³Ρ€ΡƒΠΏΠΏ ΠΊΠΎΠ΄Π°:

β–‘ Machine (Машина)

β–‘ Enterprise (ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅)

β–‘ User (ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ)

Π£Ρ€ΠΎΠ²Π½ΠΈ Π³Ρ€ΡƒΠΏΠΏ ΠΊΠΎΠ΄Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ нСзависимо ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ:

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

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π° ΠΈ полномочиями Π½Π° уровнях ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ прСдприятия с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ caspol.exe Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π»ΠΈΠ±ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ enterprise, Π»ΠΈΠ±ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ user, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, caspol.exe Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Machine; Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ эта ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΈ использовалась. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π°, пСрСчислСнныС Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ User:

caspol.exe -user -listgroups

Π’Π°ΠΊ выглядит Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΈ установкС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ:

Security is ON

Execution checking is ON

Policy change prompt is ON


Level = User

Code Groups:


1. All code: FullTrust

Success

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ Ρ‚Ρƒ ΠΆΠ΅ ΡΠ°ΠΌΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π½ΠΎ Π² этот Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Enterprise:

caspol.exe -enterprise -listgroups

Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ выглядит Ρ‚Π°ΠΊ:

Security is ON

Execution checking is ON

Policy change prompt is ON


Level = Enterprise

Code Groups:


1. All code: FullTrust

Success

Как ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ±Π° уровня, User ΠΈ Enterprise, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с прСдоставлСниСм FullTrust для СдинствСнной Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π° All Code. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ этого настройка ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для систСмы бСзопасности .NET Π½Π΅ Π½Π°Π»Π°Π³Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ прСдприятия, ΠΈ рСализованная ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° диктуСтся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ уровня ΠΌΠ°ΡˆΠΈΠ½Ρ‹. НапримСр, Ссли трСбуСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ строгоС ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠ΅ ΠΈΠ»ΠΈ мноТСство ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ ΠΊ ΡƒΡ€ΠΎΠ²Π½ΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ прСдприятия, эти ограничСния Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Π»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° всС полномочия ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π”Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ полномочия ΡΠ²Π»ΡΡŽΡ‚ΡΡ пСрСсСчСниСм, поэтому, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ FullTrust ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΊΠΎΠ΄Π°, это ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ присвоСно Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ.