1

製品のインストーラーを InstallShield から WiX に移行する作業を行っています。

以前の開発者は、Web アプリケーションをデプロイするために、InstallShield のカスタム アクション (C# で作成) を使用していました。Wix では、wix が IIS 展開をサポートしているため、これは不要になりました。

とにかく、カスタム アクションのコードの 1 つは、DirectoryEntry オブジェクトを使用して Web ディレクトリのプロパティを設定します。

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

この設定は何をしますか? セキュリティ/許可と関係があることは知っていますが、IIS で実際に設定されている設定は何ですか? 次のいずれかを有効にしますか?

  • 統合 Windows 認証
  • ダイジェスト認証
  • 基本認証
  • .NET パスポート認証

ありがとう!

4

2 に答える 2

2

しばらく前に、同様の質問に対する回答を提供しました。

IIS 6 のアプリケーション レベルでの NTAuthenticationProviders の設定

AuthFlags(not 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();
    }

  }
}
于 2010-09-27T11:00:32.050 に答える
1

実際、InstallShield でもおそらく必要ありませんでした。現在、InstallShield は実際には WiX よりも優れたビルトイン IIS サポートを備えており、このタイプの設定は、カスタム アクションを記述せずに宣言的に行うことができます。また、この情報を収集する InstallShield UI は、IIS MMC スナップインとほとんど同じように見えるため、データがどのようにマップされるかを直感的に理解できます。

于 2010-09-28T15:32:40.830 に答える