CodeAccessPermission permission =
new FileIOPermission(FileIOPermissionAccess.Append, @"C:\audit.txt");
permission.Deny();
AuditClass.Save("some data to audit");
CodeAccessPermission.RevertDeny();
}
}
class AuditClass {
public static void Save (string value) {
try {
FileIOPermission permission =
new FileIOPermission(FileIOPermissionAccess.Append, @"C:\audit.txt");
permission.Assert();
FileStream stream new FileStream(@"C:\audit.txt", FileMode.Append, FileAccess.Write);
// ΠΊΠΎΠ΄ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π΄Π΅ΡΡ
CodeAccessPermission.RevertAssert();
Console.WriteLine("Data written to audit file");
} catch {
Console.WriteLine("Failed to write data to audit file");
}
}
}
}
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° AuditClass Π½Π΅ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΎΠ½ Π½Π΅ ΠΈΠΌΠ΅Π» ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄ΠΈΡΠΊΡ.
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ RevertDeny(), RevertAssert(), ΡΠ²Π»ΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π²ΡΠ΅ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠΉ. ΠΡ ΡΠ²Π½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΌΡ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΡΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΠ΄Π΅ Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄ΠΈΠΊΡΡΠ΅Ρ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΈΡΠΊ, Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π±ΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Ρ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡΠΌΠΈ Full Trust.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠ΄Ρ
.NET Framework ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π·Π°ΡΠΈΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠΈΡΡΠ°ΡΠΈΡΡ , ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠ² CodeAccessPermission. ΠΡΠ²ΠΎΠ΄ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠ΄Ρ ΠΈΠ· .NET, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΡΠ΅ΠΊΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΎΠΉ.
ΠΠΎΡ Π΄Π²Π° ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠ΄Ρ:
β‘ ΠΠ°ΡΠΈΡΠ° ΡΠ΅ΡΡΡΡΠ°, Π΅ΡΠ΅ Π½Π΅ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Framework. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ .NET Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΡΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠΎΠΌ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ.
β‘ ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΎΡΡ .NET Framework Π΄Π°Π΅Ρ ΠΏΡΠ°Π²Π°, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΠ΅ ΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π³Π΄Π΅ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΆΠ΅ΡΡΠΊΠΎ. ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²ΡΠ·Π°Π½ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Ρ ΡΡΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΠΎΠΉ, ΠΈ Π±Π΅Π· ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° Π΄ΠΈΡΠΊΠ΅.
ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
ΠΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ, Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΈΠ»ΠΈ Π·Π°ΡΠ²ΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ, Π²ΡΠ·ΡΠ²Π°Ρ ΠΊΠ»Π°ΡΡΡ Π² .NET Framework, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎ.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π°Π΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ Π²ΡΠΈΠ³ΡΡΡ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ Ρ ΠΎΡΡΡ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠ΅ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ Ρ C:\.
using System;
using System.Security.Permissions;
namespace SecurityApp8 {
class Class1 {
static void Main(string[] args) {
MyClass.Method();
}
}
[FileIOPermission(SecurityAction.Assert, Read="C:\\")]
class MyClass {
public static void Method() {
// ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π·Π΄Π΅ΡΡ
}
}
}
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π°ΡΡΠΈΠ±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΊΠ°Π·Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ try-catch-finally.
Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠ°Ρ , ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ System.Security.Permissions.SecurityAction.
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ»Π΅ΠΉ
ΠΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΠΈΡΡΠ΅ΠΌΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠ΄Ρ Π΄Π°Π΅Ρ CLR Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π΅ΡΠ²Π½ΠΎ ΡΠ΅ΡΠΈΡΡ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΈ Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡΠΌΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²Π° ΠΎ ΠΊΠΎΠ΄Π΅. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΌΡ .NET ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π½Π° Π±Π°Π·Π΅ ΡΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²Π° ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ ΠΈ Π΅Π³ΠΎ ΡΠΎΠ»ΠΈ.
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ»Π΅ΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π° Π² ΡΠΈΡΡΠ°ΡΠΈΡΡ , Π³Π΄Π΅ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ. Π₯ΠΎΡΠΎΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΠΎΡΡΠ°ΡΠ»Ρ ΡΠΈΠ½Π°Π½ΡΠΎΠ², Π³Π΄Π΅ ΡΠΎΠ»ΠΈ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ.
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ»Π΅ΠΉ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠΉ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Ρ ΡΡΠ΅ΡΠ½ΡΠΌΠΈ Π·Π°ΠΏΠΈΡΡΠΌΠΈ Windows 2000, Microsoft Passport ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Web. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, web-ΡΠ°ΠΉΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΡΠ²ΠΎΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΡΠΎΠΌ ΡΠ°ΠΉΡΠ΅, ΠΈ Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΠ»Π°ΡΠ΅Π½Π½ΡΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠΌ. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡ ASP.NET Π΄Π΅Π»Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ»Π΅ΠΉ ΠΏΡΠΎΡΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΡΠΆΠ±Ρ Web, ΡΡΠ΅Π±ΡΡΡΠ΅ΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Windows 2000 ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ Web ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΏΡΠΎΠ²Π΅ΡΡΠ», ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ»Π΅Π½ΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Windows 2000, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΡΠΈΠ½ΡΠΈΠΏΠ°Π»
.NET ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΏΠΎΡΠΎΠΊΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Principal. ΠΡΠΈΠ½ΡΠΈΠΏΠ°Π» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΄ΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ .NET, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ»Π΅ΠΉ, ΠΈ ΡΠ΅ΡΠ΅Π· Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ Identity ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π½ΠΈΠΆΠ΅ ΡΠΈΠΏΠΎΠ²:
β‘ Π£ΡΠ΅ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ Windows
β‘ Π£ΡΠ΅ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ Passport
β‘ ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ cookie ΠΈΠ· ASP.NET
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ½ΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ»Π΅ΠΉ Π² .NET ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Π»Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IPrincipal. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΠ΅ΡΡ Π½Π° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Windows, Passport ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ cookie, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° principal.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄Ρ ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΎΠ»Π΅ΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Π»Π°. Π ΠΎΠ»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Windows Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΈΠΏ WindowsIdentity Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Π°ΡΠΈΠ°Π½ΡΠ° Identity. ΠΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΡΠΎΡ ΡΠΈΠΏ Π΄Π»Ρ Π²ΡΡΡΠ½Π΅Π½ΠΈΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ»Π΅Π½ΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Windows, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ΄Ρ ΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌ.
ΠΠ±ΡΡΠ½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ, Π΅ΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ, Π° Π½Π΅ ΡΠΎΠ»Π΅ΠΉ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π³Π΄Π΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Ρ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠΎΠ³ΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π΅ΠΌΡ ΠΎΡΠΊΡΡΡ. ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ΡΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ, Π³Π΄Π΅ ΡΠΈΡΠ»ΠΎ ΡΠ²ΠΎΠΉΡΡΠ² Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ Π΄ΠΎ Π΄Π΅Π²ΡΡΠΈ. Π§ΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π΄Π΅Π²ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Ρ ΠΎΡΡ ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. ΠΠ°ΠΆΠ΅ Ρ ΡΠΆΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΌΠΈ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. ΠΡΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΠΈ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈΠ· ΡΠΎΠ»Π΅ΠΉ, Π° Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅ΡΡΡ, ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π²ΠΈΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ» ΡΠ»Π΅Π½ΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³ΡΡΠΏΠΏΡ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΌΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ, Π° Π½Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ²ΠΎΡΡ ΠΏΡΠΎΡΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠΎΠΌ, ΡΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Managers, Π½ΠΎ Π½Π΅ Secretaries, ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π° Π½Π΅ Π½Π° ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠ²Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Julie ΠΈ Bob, Π½ΠΎ Π½Π΅ Conrad.