Назад | Перейти на главную страницу

Базовая проверка подлинности IIS7 без учетной записи Windows

Я пытаюсь защитить сайт MVC.NET на IIS7.5 с помощью базовой проверки подлинности. Я бы предпочел не настраивать для этого всю учетную запись Windows, так как я не хочу, чтобы у пользователя были такие привилегии. Я также не хочу внедрять решение для аутентификации на основе данных. Мне просто нужен быстрый способ создать пользователя, который может получить доступ только к веб-сайту и ни к чему другому.

Есть ли способ сделать это, сохранив учетные данные в файле web.config? Или использовать пользователей под управлением IIS? Управляемые пользователи кажутся излишними, поскольку я не хочу, чтобы пользователь действительно мог управлять сайтом, просто получил доступ для его просмотра.

Если я правильно помню, вы можете хранить учетные данные для пользователей непосредственно в файле web.config, но только при использовании в сочетании с поставщиком проверки подлинности форм.

На самом деле не рекомендуется хранить такие учетные данные, особенно если вы можете легко настроить поставщик членства ASP.NET по умолчанию для использования локального экземпляра SQLCE.

<authentication mode="Forms"> 
    <forms name=".ASPNETAUTH"> 
        <credentials passwordFormat="Clear"> 
             <user name="test" password="test"/> 
        </credentials> 
    </forms> 
</authentication> 

Большинство встроенных методов проверки подлинности IIS так или иначе используют учетные записи Windows, поэтому, если вы не хотите выполнять для этого какую-либо серьезную работу, вам придется использовать их - вы захотите создать учетные записи, которые разумно заблокированы.

Обычно достаточно:

  1. создать группу (например, веб-пользователи)
  2. добавить отдельные учетные записи в эту группу
  3. удалить учетные записи из пользователей (что эффективно избавляет от многих разрешений по умолчанию)
  4. предоставить группе веб-пользователей разрешения на чтение папки веб-сайта (и выборочно любые необходимые разрешения на изменение - например, загрузка каталогов)
  5. добавьте группу в соответствующие записи «Запретить ...» в локальной политике безопасности / Назначении прав пользователя

При желании вы можете добавить рекурсивные ACE запрета полного управления для этой группы на диски, кусты реестра и любые другие ресурсы, управляемые DACL - SetACL должен иметь возможность делать большинство из них (см. http://helgeklein.com/).

Если вам действительно нужно использовать настраиваемый список пользователей, тогда (как сказал @BrentPabst) аутентификация с помощью форм - единственный реальный способ (см. http://msdn.microsoft.com/en-us/library/da0adyye.aspx), но вам нужно будет создать страницу входа в ASP.NET.

Я не пробовал аутентификацию диспетчера IIS, но, насколько я могу судить, она применяется только к FTP-сайтам, а не к веб-сайтам.

Дж.