トップ回答者
ディレクトリに対して基本認証をプログラムで動的に設定する方法

質問
-
下記事項をプログラムで動的に実行したいのですが...
1.Windows ユーザーを作成する(以下HOGE)2.「HOGE」に対してコンソール・ログインを不可にする3.ディレクトリを作成する(以下ABC).# もちろん、Webからアクセスできるディレクトリ3.「ABC」に対して(IISの)基本認証を設定する4.「ABC」の基本認証に対して「HOGE」のみにアクセス許可を与えるちなみに、バージョンは IIS 6 です。(ActiveDirectory は使用していません)もちろん、IIS マネージャからではなく .NET プログラムから前述の設定を行いたいのですがIIS の API を探そうにも、どこを探したらよいのか分からず、迷子になっています...orz# IIS で調べると違う内容ばかりが多量に HIT してしまって...# Apache ならテキストいじるだけでできるのに...どなたか、キーとなる API や探す方法をご存知でしたら教えてくださいよろしくお願いいたします m(__)m- 移動 Wang Huang 2012年10月2日 1:29 (移動元:Internet Information Services 5.x, 6.0 - 全般)
2009年6月13日 7:36
回答
-
こんにちは、nagino です。
この手の情報は、日本語では非常に少ないかと思います。
また、IIS 7 からは設定が XML(テキスト)ですので、今後情報が増えるようなこともあまり期待できないかと思います。私も以前挑戦しかけて、時間の都合もあって断念、手順書作成して運用次第としました。
そのため以下動作確認していないドキュメントレベルでのお話になってしまいますので、間違い等もあるかと思います。
その点ご留意ください。IIS 6 の設定をプログラムから行うとすると、以下の 4 種類のいずれかを使うことになるかと思います。
-1.ADSI
http://msdn.microsoft.com/en-us/library/ms525389.aspx
-2.WMI
http://msdn.microsoft.com/en-us/library/ms525309.aspx
-3.System.DirectoryServices
http://msdn.microsoft.com/en-us/library/ms525791.aspx
-4.ABO
http://msdn.microsoft.com/en-us/library/ms525112.aspx
上記 URL にサンプルコードのリンクがあります。今回 .NET ということですので、-3.System.DirectoryServices が良いかと思います。
が、Active Directory を使用していない環境で使用できるかどうかは未確認ですので、その点ご注意ください。
一応 System.DirectoryServices のリファレンスは以下にあります。
http://msdn.microsoft.com/ja-jp/library/system.directoryservices.aspxあとは、WMI や ADSI という手もあります。
WMI は .NET から扱えたかと思います。WMI ですと、リファレンスは以下にあります。
http://msdn.microsoft.com/en-us/library/ms524972.aspx(仮想ディレクトリの作成)
http://msdn.microsoft.com/en-us/library/ms525005.aspx(仮想ディレクトリの設定)IIsWebVirtualDir.AppCreate2 あたりで仮想ディレクトリを作成し、IIsWebVirtualDirSetting の AuthFlags を設定することになるかと思います。
ADSI はちょっと怪しいですが、以下かと思います。
http://msdn.microsoft.com/en-us/library/ms526026.aspxざっくりですが、以上ご参考になれば幸いです。
MCITP(Database Developer/Database Administrator)- 回答としてマーク 高橋 春樹 2009年7月16日 8:20
2009年7月1日 23:53
すべての返信
-
こんにちは、nagino です。
この手の情報は、日本語では非常に少ないかと思います。
また、IIS 7 からは設定が XML(テキスト)ですので、今後情報が増えるようなこともあまり期待できないかと思います。私も以前挑戦しかけて、時間の都合もあって断念、手順書作成して運用次第としました。
そのため以下動作確認していないドキュメントレベルでのお話になってしまいますので、間違い等もあるかと思います。
その点ご留意ください。IIS 6 の設定をプログラムから行うとすると、以下の 4 種類のいずれかを使うことになるかと思います。
-1.ADSI
http://msdn.microsoft.com/en-us/library/ms525389.aspx
-2.WMI
http://msdn.microsoft.com/en-us/library/ms525309.aspx
-3.System.DirectoryServices
http://msdn.microsoft.com/en-us/library/ms525791.aspx
-4.ABO
http://msdn.microsoft.com/en-us/library/ms525112.aspx
上記 URL にサンプルコードのリンクがあります。今回 .NET ということですので、-3.System.DirectoryServices が良いかと思います。
が、Active Directory を使用していない環境で使用できるかどうかは未確認ですので、その点ご注意ください。
一応 System.DirectoryServices のリファレンスは以下にあります。
http://msdn.microsoft.com/ja-jp/library/system.directoryservices.aspxあとは、WMI や ADSI という手もあります。
WMI は .NET から扱えたかと思います。WMI ですと、リファレンスは以下にあります。
http://msdn.microsoft.com/en-us/library/ms524972.aspx(仮想ディレクトリの作成)
http://msdn.microsoft.com/en-us/library/ms525005.aspx(仮想ディレクトリの設定)IIsWebVirtualDir.AppCreate2 あたりで仮想ディレクトリを作成し、IIsWebVirtualDirSetting の AuthFlags を設定することになるかと思います。
ADSI はちょっと怪しいですが、以下かと思います。
http://msdn.microsoft.com/en-us/library/ms526026.aspxざっくりですが、以上ご参考になれば幸いです。
MCITP(Database Developer/Database Administrator)- 回答としてマーク 高橋 春樹 2009年7月16日 8:20
2009年7月1日 23:53 -
こんにちは、フォーラムオペレータの高橋春樹です。
naginoさん、いつもお世話になっております。
アドバイスありがとうございました。ShigeruNakagakiさん、初めまして。
MSDNフォーラムのご利用ありがとうございます。naginoさんから、アドバイスを頂いたと思うのですが、疑問点の解決に繋がりましたでしょうか?
今回naginoさんから頂いた情報を皆さんと共有する為に、回答マークをつけさせてもらいました。
不適切な場合は、回答マークを外す事もできますので、そのときはよろしくお願いします。
マイクロソフト株式会社 フォーラム オペレータ 高橋春樹2009年7月16日 8:20