Защита или безопасность
Защита, или безопасность – это одно из основных требований к приложениям и при разработке ее следует учитывать не в последнюю очередь. Однако из педагогических соображений говорить о защите легче тогда, когда уже состоялось знакомство с прикладной моделью .NET, а также с ASP.NET и Web-службами. Эта глава должна познакомить вас с основными концепциями защиты .NET.
Защита не дает пользователю или коду делать то, что им не позволено. Традиционно основная задача защиты состояла в том, чтобы ограничивать действия пользователей. Платформа NET дает возможность накладывать ограничения и на выполнение кода. Например, вы можете запрещать некоторым секциям кода получать доступ к некоторым файлам. Это особенно полезно, когда у вас есть общедоступные Web-узлы и Web-службы, где нереально иметь учетные записи, файлы для различных блокировок или другие ресурсы, предназначенные для неизвестного числа пользователей. Все это критично тогда, когда приходится выполнять код, созданный независимыми производителями.
Важно понимать, что защита платформы .NET (или, проще говоря, защита .NET) строится поверх системы защиты операционной системы компьютера. В данной главе предполагается, что такой операционной системой является Windows 2000. И когда мы будем обсуждать некоторые вопросы защиты, связанные с инфраструктурой операционной системы, в том числе с информационным сервером Internet (Internet Information Server, IIS), разработанным фирмой Microsoft, то в подробности будем углубляться только в тех местах, которые имеют отношение к NET.
Вот пример взаимодействия защиты NET и операционной системы код всегда запускается под какими-нибудь "персональными настройками", или, иными словами, под каким-нибудь идентификатором пользователя. Или вот еще пример если список доступа (Access Control List, ACL) не дает вам права на создание файла, то вы не сможете его создать, несмотря на все разрешения, предоставленные вам защитой .NET.
Взаимоотношения с системой защиты начинаются с того, что приходится отвечать на два вопроса. Первый из них относится к опознаванию: "Кто вы?" Второй же вопрос о разрешении: "Имеете ли вы право делать то, что пытаетесь сделать?" В .NET эти вопросы могут относиться к двум видам, поскольку "вы" можете быть пользователем или сборкой.
Начнем мы с того, что вкратце расскажем о защите, показывая, каким образом эти два ее вида сосуществуют в системе .NET. Затем, хоть это так сразу и не нужно, последует краткий экскурс в Internet-защиту, чтобы мы могли, когда потребуется, использовать эту информацию. Ну, а потом мы начнем подробно рассказывать, как в системе .NET применяется защита, работающая на основе ролей.