これを Visual Studio 2013 でテストしたところ正常に動作しましたが、Web サーバーに公開した後、401 エラーが発生しました。これがコードですが、問題はないと思います。私のユーザーアカウントを使用してVisual Studioで動作したため、継承したIISサーバーでの設定だと思います。ユーザーは公開サイトで Active Directory アカウントとパスワードを使用してログインできますが、AD グループ FIDO_Users でユーザーをプログラムで追加または削除しようとすると、エラーが発生します。更新ボタンは Telerik RadGrid FormTemplate にありますが、RadButton から OnClick を実行して、AD グループの更新用に以下のコードを実行しています。匿名認証とフォーム認証を使用しているため、IUSR を Active Directory に追加しようとしましたが、同じ結果が得られました。他に何が欠けていますか?
protected void btnUpdate_OnClick(object sender, EventArgs e)
{
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "ducks.org");
Button btn = sender as Button;
RadTextBox rtxtb = btn.Parent.FindControl("UNameIDBox") as RadTextBox;
string txtb = rtxtb.Text;
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, txtb);
GroupPrincipal groupadAdmin = GroupPrincipal.FindByIdentity(ctx, "FIDO_Users");
RadButton rbFind = btn.Parent.FindControl("rbOpen") as RadButton;
bool rbChekced = rbFind.Checked;
if (rbChekced)
{
if (!user.IsMemberOf(groupadAdmin))
{
groupadAdmin.Members.Add(user);
groupadAdmin.Save();
}
}
else
{
groupadAdmin.Members.Remove(user);
groupadAdmin.Save();
}
}