Когда вы устанавливаете свойство веб-каталога «AuthNTLM» с помощью объекта DirectoryEntry, какие настройки IIS вы на самом деле меняете? - PullRequest
1 голос
/ 27 сентября 2010

Передо мной стоит программа установки нашего продукта с InstallShield на WiX.

Для развертывания веб-приложений предыдущие разработчики использовали Custom Actions (написанные на C #) в InstallShield.В Wix это больше не требуется, поскольку wix поддерживает развертывание IIS.

В любом случае, один из кодов в настраиваемом действии использует объект DirectoryEntry для установки свойства веб-каталога:

DirectoryEntry.Properties["AuthNTLM"][0] = true;

Что делает этот параметр?Я знаю, что это как-то связано с безопасностью / разрешением, но какой параметр он действительно устанавливает в IIS?Включает ли он одну из следующих функций:

  • Встроенная аутентификация Windows
  • Дайджест-аутентификация
  • Базовая аутентификация
  • .NET Passport Authentication

Спасибо!

Ответы [ 2 ]

2 голосов
/ 27 сентября 2010

Некоторое время назад я дал ответ на аналогичный вопрос:

Настройка NTAuthenticationProviders на уровне приложения в IIS 6

AuthFlags (не AuthNTLM) является значением флага. Вы можете установить это без использования индексатора, например:

int MD_AUTH_ANONYMOUS = 1;
int MD_AUTH_BASIC = 2;
int MD_AUTH_NT = 4;

using(DirectoryEntry w3svc = new DirectoryEntry(@"IIS://Localhost/W3SVC"))
{
  using(DirectoryEntry webSite = w3svc.Children.Add(iisNumber, "IIsWebServer"))
  {
    // Configure website settings here...
    ....
    webSite.CommitChanges();

    using(DirectoryEntry siteRoot = webSite.Children.Add("root",
                                        IISSchemaClasses.IIsWebVirtualDir))
    {
      // Configure root application settings...
      ....
      // Only allow Basic and NTLM authentication
      siteRoot.Properties["AuthFlags"].Value = MD_AUTH_BASIC | MD_AUTH_NT 
      siteRoot.CommitChanges();
    }

  }
}
1 голос
/ 28 сентября 2010

На самом деле, вероятно, в InstallShield это тоже не требовалось. В настоящее время InstallShield на самом деле имеет лучшую встроенную поддержку IIS, чем WiX, и этот тип настройки можно выполнить декларативно без написания настраиваемого действия. Кроме того, интерфейс InstallShield, который собирает эту информацию, выглядит почти так же, как оснастка IIS MMC, так что он интуитивно понятен при отображении данных.

...