1

winforms アプリケーションの管理者グループに IUSR アカウントを追加したいと考えています。次のコードは、「NT AUTHORITY\IUSR」のユーザーが見つからないため失敗します。

 DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
 DirectoryEntry administrators = AD.Children.Find("Administrators", "group");
 DirectoryEntry iusr = AD.Children.Find(@"NT AUTHORITY\IUSR", "user");

 administrators.Invoke("Add", new object[] {iusr.Path.ToString()});

これは悪い考えだと思います。これを行っているのは、IIS7 で開発目的のみに新しい Web サイトをプログラムで作成する winforms アプリケーションを作成しているためです。Web サイトは正常に作成されていますが、ページを読み込もうとすると ASP.NET が「アクセスが拒否されました」というエラーを表示します。IUSR を管理者グループに追加すると、すべて正常に動作します。他に何を試すことができますか?以下は、新しいウェブサイトを作成するために使用しているコードです。

Site site = servermgr.Sites.Add(websitename, physicalpath, port);
Binding binding = site.Bindings.CreateElement();
string bindinginfo = "*:" + port.ToString() + ":" + hostipaddress;

binding.Protocol = "http";
binding.BindingInformation = bindinginfo;
site.Bindings.Clear();
site.Bindings.Add(binding);

site.Applications.Add(applicationpath, applicationphysicalpath);

site.ApplicationDefaults.ApplicationPoolName = "Default";

servermgr.CommitChanges();
4

2 に答える 2

1

正しい解決策は、ページの認証を要求することです。これにより、ブラウザにログオンするように求められます。適切に権限を与えられたアカウントを使用すると、ページは新しい Web サイトを作成できるようになります。

以前のバージョンでは (通常は IIS マネージャーから) メタベースを編集する必要がありましたが、IIS7 では (たとえば) ApplicationHost.config からこれを構成できます。

編集: 認証、ブラウザー、およびネットワーク構成に応じて、ブラウザーがドメイン アカウントを使用してページに自動的にログインするように設定することができます。

于 2012-01-13T21:37:54.963 に答える
1
DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
DirectoryEntry administrators = AD.Children.Find("Administrators", "group");

administrators.Invoke("Add", new object[] {"WinNT://NT AUTHORITY/IUSR"});
于 2013-05-06T13:17:30.740 に答える