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

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

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

БистСма бСзопасности Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ Π² .NET строится Π½Π° систСмС бСзопасности ΠΈΠ· MTS ΠΈ COM+ 1.0 ΠΈ прСдоставляСт Π³ΠΈΠ±ΠΊΡƒΡŽ срСду, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΡƒΡŽ ограТдСния Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹. Если систСма COM+ 1.0 установлСна Π½Π° машинС, Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² NET, ΠΎΠ΄Π½Π°ΠΊΠΎ COM Π½Π΅ трСбуСтся .NET Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ для функционирования систСмы бСзопасности.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Π» Windows

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ доступ ΠΊ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Π»Ρƒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ описанной Π½ΠΈΠΆΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью Windows. Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ пространства ΠΈΠΌΠ΅Π½ System.Security.Principal ΠΈ System.Threading. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ .NET автоматичСски соСдинял ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Π» с описанной Π½ΠΈΠΆΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью Windows, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² .NET это Π½Π΅ происходит автоматичСски ΠΏΠΎ сообраТСниям бСзопасности. НашС Π·Π°Π΄Π°Π½ΠΈΠ΅:

using System;

using System.Security.Principal;

using System.Security.Permissions;

using System.Threading;


namespace SecurityApplication2 {

 class Class1 {

  static void Main(string[] args) {

   AppDomain.CurrentDomain.SetPrincipalPolicy(

    PrincipalPolicy.WindowsPrincipal);

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ WindowsIdentity.GetCurrent() для доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Windows, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚Π°ΠΊΠΎΠΉ способ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Π» ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Π»Ρƒ нСсколько Ρ€Π°Π·, Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивно Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ выполнСния прСдоставлял доступ ΠΊ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Π»Ρƒ. ΠŸΡ€ΠΈ использовании ΠΌΠ΅Ρ‚ΠΎΠ΄Π° SetPrincipalPolicy опрСдСляСтся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Π» Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ выполнСния Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ WindowsIdentity. Π”ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠΎΠ΄ для доступа ΠΊ свойствам ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Π»Π° ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Thread:

   WindowsPrincipal principal =

   (WindowsPrincipal)Thread.CurrentPrincipal;

   WindowsIdentity identity = (WindowsIdentity)principal.Identity;

   Console.WriteLine("IdentityTyΡ€e:" + identity.ToString());

   Console.WriteLine("Name:" + identity.Name);

   Console.WriteLine(

    "Users'?:" + principal.IsInRole("BUILTIN\\Users"));

   Console.WriteLine(

    "Administrators' ?: " +

    principal.IsInRole(WindowsBuiltInRole.Administrator));

   Console.WriteLine("Authenticated:" + identity.IsAuthenticated);

   Console.WriteLine("AuthType:" + identity.AuthenticationType);

   Console.WriteLine("Anonymous?:" + identity.IsAnonymous);

   Console.WriteLine("Token:" + identity.Token);

  }

 }

}

Π’Ρ‹Π²ΠΎΠ΄ ΠΈΠ· этого консольного прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ, Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈ Ρ€ΠΎΠ»Π΅ΠΉ, ассоциированных с ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π² систСмС:

IdentityType:System.Security.Principal.WindowsIdentity

Name:MACHINE\alaric

'Users'?:True

'Administrators'?:True

Authenticated:True

AuthType:NTLM

Anonymous?:False

Token:256

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

Π ΠΎΠ»ΠΈ

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ сцСнарий, Π³Π΄Π΅ имССтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Ρ€Π°Π½Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи Windows. БистСма ΠΈΠΌΠ΅Π΅Ρ‚ Π³Ρ€ΡƒΠΏΠΏΡƒ Manager ΠΈ Π³Ρ€ΡƒΠΏΠΏΡƒ Assistant, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ относятся ΠΊ этим Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ Π² зависимости ΠΎΡ‚ ΠΈΡ… Ρ€ΠΎΠ»ΠΈ Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΡƒΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ содСрТит свойство, выводящСС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ сотрудниках, ΠΈ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊ Π½Π΅ΠΌΡƒ ΠΈΠΌΠ΅Π»Π° доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³Ρ€ΡƒΠΏΠΏΠ° Manager. МоТно Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСт, являСтся Π»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‡Π»Π΅Π½ΠΎΠΌ Π³Ρ€ΡƒΠΏΠΏΡ‹ Manager, ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π΅ΠΌΡƒ доступ Π½Π° основС этого.

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

Π›ΡƒΡ‡ΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π±Ρ‹Π»ΠΎ Π±Ρ‹ созданиС полномочия, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ReadEmployeeDetails, ΠΈ присваиваниС Π΅Π³ΠΎ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ, Π³Π΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Если ΠΊΠΎΠ΄ провСряСт ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠ΅ ReadEmployeeDetails, Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ прилоТСния с Ρ†Π΅Π»ΡŒΡŽ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΠ΅ Personnel доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎ сотрудниках, являСтся просто вопросом создания Π³Ρ€ΡƒΠΏΠΏΡ‹, внСсСния Π² Π½Π΅Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ присваиваниС Π³Ρ€ΡƒΠΏΠΏΠ΅ полномочия ReadEmployeeDetails.

БистСма бСзопасности Π½Π° основС Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€ΠΎΠ»ΠΈ

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

using System;

using System.Security;

using System.Security.Principal;

using System.Security.Permissions;


namespace SecurityApp3 {

 class Class1 {

  static void Main(string[] args) {

   AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);

   try {

    ShowMessage();

   } catch (SecurityException exception) {

    Console.WriteLine(

     "Security exception caught (" + exception.Message + ")");

    Console.WriteLine(

     "The current principal must be in the local"

     + "Users group");

   }

  }

  (PrincipalPermissionAttribute(SecurityAction.Demaid, Role =

   "BUILTIN\\Users"));

  static void ShowMessage() {

   Console.WriteLine("The current principal is longed in locally");

   Console.WriteLine("they are a member of the local Users group)");

  }

 }

}

ΠœΠ΅Ρ‚ΠΎΠ΄ ShowMessage() Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выполняСтся Π½Π΅ Π² контСкстС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Users Π² Windows 2000. Π§Ρ‚ΠΎ касаСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Web, Ρ‚ΠΎ учСтная запись, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся ΠΊΠΎΠ΄ ASP.NET, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅, хотя Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ добавлСния этой ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π² Π³Ρ€ΡƒΠΏΠΏΡƒ администраторов.

Если Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π² локальной Π³Ρ€ΡƒΠΏΠΏΠ΅ Users, Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ:

The current principal is logged in locally

(they are a member of the local Users group)

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ систСмС бСзопасности Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ Π² .NET ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ MSDN для пространства ΠΈΠΌΠ΅Π½ System.Security.Principal.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ систСмы бСзопасности

АспСкты бСзопасности .NET Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π½Π΅Π΅ ΠΈ ΡˆΠΈΡ€Π΅, Ρ‡Π΅ΠΌ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вопросы Π² Windows, Π½ΠΎ всС ΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ограничСния, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ:

β–‘ ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° систСмы бСзопасности .NET Π½Π΅ обСспСчиваСт Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π½Π° нСуправляСмом ΠΊΠΎΠ΄Π΅ (хотя обСспСчиваСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ нСуправляСмому ΠΊΠΎΠ΄Ρƒ).

β–‘ Π•сли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ сборку Π½Π° свою Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ, сборка ΠΈΠΌΠ΅Π΅Ρ‚ полномочия FullTrust ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° бСзопасности Π½Π΅ дСйствуСт. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ полномочия прСдоставляСмыС Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ.

β–‘ ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊ систСмы бСзопасности .NET прСдоставляСт ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈ Π±ΠΎΡ€ΡŒΠ±Π΅ со Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ .Π•Π₯Π• Win32 ΠΈ вирусами Π½Π° основС сцСнариСв, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Microsoft борСтся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами. НапримСр Π½Π΅Π΄Π°Π²Π½ΠΈΠ΅ вСрсии Outlook Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ исполнимыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… сообщСний, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ прСдупрСТдаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ вирусы, ΠΈ сохраняСт ΠΈΡ… Π½Π° дискС, Π³Π΄Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ возмоТности для установки административных ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ доступа ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ диску ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ антивирусного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Однако .NET сущСствСнно ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Π² ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ… Π½Π° вопросы, сколько ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄Ρƒ, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½Ρ‚Ρ€Π°Π½Π΅Ρ‚, элСмСнтом управлСния Π½Π° страницС Web ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Windows Forms, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌ ΠΎΡ‚ поставщика ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» систСмы бСзопасности

Как ΠΌΡ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΎΠ±Ρ‰ΠΈΠΌ Π·Π²Π΅Π½ΠΎΠΌ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠΌ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠ΄Π°, полномочия ΠΈ мноТСства ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ уровня ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ систСмы бСзопасности (Enterprise, Machine ΠΈ User). Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ систСмы бСзопасности Π² .NET хранится Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… XML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹ систСмой бСзопасности Windows. НапримСр, ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° бСзопасности уровня Machine распространяСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏ Administrator, Power User ΠΈ SYSTEM Π² Windows 2000.

Π’ Windows 2000 Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ бСзопасности располоТСны Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… мСстах:

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ прСдприятия

C:\WinNT\Microsoft.NET\Framework\v1.0.xxxx\Config\enterprise.config

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρ‹

C:\WinNT\Microsoft.NET\Framework\v1.0.xxxx\Config\security.config