Как защитить приложения ASP.NET с помощью Системы безопасности Microsoft Windows

Переводы статьи Переводы статьи
Код статьи: 315736 - Vizualiza?i produsele pentru care se aplic? acest articol.
Данная статья была ранее опубликована под номером RU315736
Развернуть все | Свернуть все

В этой статье

Аннотация

ASP.NET может использоваться вместе с Microsoft Internet Information Services (IIS) для аутентификации веб-пользователей, базируясь на данных их учетных записей Windows 2000. Среда выполнения ASP.NET может быть настроена для имперсонификации веб-пользователей или для использования их учетных записей Windows при получении доступа к базам данных или файлам.

Требования

Необходимо следующее оборудование, программное обеспечение и сетевая инфраструктура для выполнения операций, описанных в данной статье:
  • Windows 2000 Server с установленным пакетом обновлений SP2
  • IIS 5.0
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual Studio .NET
Также необходим следующий опыт работы:
  • Разработка ASP.NET на Visual Basic .NET
  • Администрирование IIS
  • Администрирование учетных записей Windows 2000

Как создать веб-сайт

В данном разделе описывается процесс создания простого веб-приложения ASP.NET, которое будет защищено с помощью аутентификации Windows.
  1. Запустите Visual Studio .NET, создайте веб-приложение Visual Basic ASP.NET и назовите его "WindowsSite".
  2. Перетащите элемент управления "Label" с панели инструментов на веб-форму WebForm1.aspx и присвойте ее свойству "ID" значение authUserPrincipalLabel .
  3. Перетащите второй элемент управления "Label" с панели инструментов на веб-форму WebForm1.aspx и присвойте ее свойству "ID" значение aspPrincipalLabel .
  4. Дважды щелкните по WebForm1.aspx для просмотра окна кода и добавьте следующее объявление перед описанием классов:
     
    Imports System.Security
     
    Добавьте следующий код для процедуры события Page_Load:
     
    Dim authUserName As String
    Dim aspUserName As String
    authUserName = User.Identity.Name
    aspUserName = Principal.WindowsIdentity.GetCurrent.Name
    authUserPrincipalLabel.Text = "Ваша учетная запись: " & authUserName
    aspPrincipalLabel.Text = "Данная страница запущена с учетной записью: " & aspUserName
     
  5. Откройте файл проекта Web.config и перейдите к элементу "authentification". Убедитесь в том, что атрибут "режим" имеет значение "Windows".
  6. Скомпилируйте проект.
  7. Запустите проект и убедитесь в том, что отображение страницы сопровождается следующим сообщением:
    Ваша учетная запись:
    Данная страница запущена с учетной записью: <имя домена или сервера>\ASPNET
    Примечание: Ваше имя пользователя не отображается, так как Вы не были аутентифицированы IIS; анонимный доступ возможен.
  8. Закройте Internet Explorer для остановки проекта.

Как отключить анонимный доступ

В данном разделе описана процедура настройки IIS для обязательной аутентификации Windows для веб-сайта WindowsSite.
  1. Сверните окно Visual Studio и запустите Диспетчер служб Интернета из группы программ "Администрирование".
  2. Разверните в дереве консоли Ваш сервер и его веб-сайт по умолчанию, щелкните правой кнопкой мыши по сайту WindowsSite и запустите команду "Свойства" из контекстного меню.
  3. Перейдите на вкладку "Безопасность папки" в окне свойств WindowsSite, нажмите кнопку "Изменить" в разделе "Анонимный доступ и проверка подлинности".
  4. Очистите флажок "Анонимный доступ", убедитесь, что установлен флажок "Встроенная проверка подлинности Windows", и нажмите кнопку "OK".
  5. Нажмите кнопку "OK" для закрытия диалогового окна свойств WindowsSite.
  6. Разверните окно Visual Studio и запустите проект. Убедитесь в том, что страница отображается со следующим сообщением:
    Ваше имя пользователя: Ваше имя пользователя Windows
    Данная страница запущена с учетной записью: <имя домена или сервера>\ASPNET
    Примечание: Вы были аутентифицированы с помощью Вашей учетной записи Windows. Если Вы не выполнили вход в Windows, Вам будет предложено ввести имя пользователя и пароль.
  7. Закройте Internet Explorer для остановки проекта.

Как включить имперсонификацию

В данном разделе описан процесс настройки приложения WindowsSite для имперсонации (имперсонификации или заимствования прав) пользователя Windows, использующего данное приложение.
  1. В Visual Studio просмотрите файл Web.config проекта WindowsSite.
  2. Добавьте следующий элемент после элемента "authentication":
     
    <identity impersonate = "true" />
     
  3. Сохраните файл Web.config.
  4. Запустите проект. Убедитесь, что страница отображается со следующим сообщением (обратите внимание, что среда выполнения ASP.NET использует Ваши учетные данные Windows для доступа к ресурсам от Вашего имени):
    Вы: Ваше имя пользователя Windows
    Данная страница запущена как: Ваше имя пользователя Windows
  5. Закройте Internet Explorer для остановки проекта.

Как назначить участника

В данном разделе описан процесс настройки приложения WindowsSite для использования администратора доступа:
  1. Запустите оснастку "Управление компьютером" из группы программ "Администрирование". Создайте новую учетную запись Windows "WindowsSite" с паролем "password" (обратите внимание, если Ваш сервер является контроллером домена, используйте оснастку "Active Directory - пользователи и компьютеры").
  2. Снимите флажок "Потребовать смену пароля при следующем входе в систему". Примечание: Участник, выбранный Вами, должен иметь привилегии, описанные в следующей статье Microsoft Knowledge Base:
    317012INFO: Process and Request Identity in ASP.NET
  3. Участник, выбранный Вами, должен иметь привилегии, описанные в следующей статье Microsoft Knowledge Base: После создания учетной записи "WindowsSite" закройте оснастку, которую Вы использовали для выполнения данной операции.
  4. Участник, выбранный Вами, должен иметь привилегии, описанные в следующей статье Microsoft Knowledge Base: В Visual Studio просмотрите файл Web.config проекта WindowsSite.
  5. Участник, выбранный Вами, должен иметь привилегии, описанные в следующей статье Microsoft Knowledge Base: Внесите следующие изменения в элемент "identity":
    <identity impersonate = "true" userName = " DomainOrServerName \WindowsSite"
    password = "password"/>
    где DomainOrServerName - это имя Вашего домена Windows 2000 (в доменной среде) или имя компьютера (в рабочей группе).
  6. Участник, выбранный Вами, должен иметь привилегии, описанные в следующей статье Microsoft Knowledge Base: Сохраните файл Web.config.
  7. Участник, выбранный Вами, должен иметь привилегии, описанные в следующей статье Microsoft Knowledge Base: Запустите проект. Убедитесь, что страница отображается со следующим сообщением:
    Ваше имя пользователя: Ваше имя пользователя Windows
    Данная страница запущена с учетной записью: <имя домена или сервера>\WindowsSite
    Примечание: Aspnet_wp.exe использует Ваши учетные данные Windows для доступа к ресурсам от Вашего имени.
  8. Участник, выбранный Вами, должен иметь привилегии, описанные в следующей статье Microsoft Knowledge Base: Закройте Internet Explorer для остановки проекта.
    Примечание: Учетная запись процесса, имперсонирующая конкретного пользователя, должна иметь привилегии "Действовать от лица операционной системы". По умолчанию, процесс Aspnet_wp.exe запускается под учетной записью "ASPNET". Однако, данная учетная запись не имеет требуемых привилегий для имперсонации конкретного пользователя. При попытке имперсонировать конкретного пользователя выдается сообщение об ошибке.

    Для получения временного решения данной проблемы используйте один из следующих методов:

    • Предоставьте привилегию "Действовать от лица операционной системы" для учетной записи "ASPNET".

      Примечание: Данный метод не рекомендуется Microsoft.
    • Измените учетную запись, под которой запускается служба Aspnet_wp.exe, на учетную запись "System" в разделе <processModel> файла Machine.config.
Для получения дополнительной информации о процессе ASPNET обратитесь к следующему веб-сайту Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/library/en-us/vsent7/html/vxconApplicationIdentity.asp?frame=true

Поиск и устранение неисправностей

Безопасность Windows веб-сайта ASP.NET может быть дополнена (и усложнена) разрешениями NTFS. Если Ваша учетная запись Windows не имеет разрешения на чтение веб-страницы ASP.NET, IIS запросит альтернативные учетные данные Windows. Также, если страница ASP.NET пытается получить доступ к файлу, к которому нет доступа у участника безопасности, используемого средой выполнения ASP.NET, будут запрошены альтернативные учетные данные. Разрешения NTFS являются эффективным средством для контроля за доступом к веб-сайту.

Ссылки

Для получения дополнительной информации об использовании аутентификации Windows в веб-сайте ASP.NET обратитесь к разделу "ASP.NET Web application Security" документации .NET Framework.

Также, обратитесь к статье "Authentication in ASP.NET: .NET Security Guidance" на следующем веб-сайте MSDN:
http://msdn2.microsoft.com/en-us/library/ms978378.aspx

Свойства

Код статьи: 315736 - Последний отзыв: 14 марта 2007 г. - Revision: 3.3
Информация в данной статье относится к следующим продуктам.
  • Microsoft ASP.NET (included with the .NET Framework)
  • Microsoft Internet Information Services 5.0
Ключевые слова: 
kbconfig kbgrpdsasp kbhowto kbhowtomaster kbinfo kbsecurity kbweb KB315736
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com