我在 Visual Studio 2013 中对此进行了测试,它工作正常,但在发布到 Web 服务器后,我收到 401 错误。这是代码,但我认为这不是问题。我认为它是我继承的 IIS 服务器上的设置,因为它使用我的用户帐户在 Visual Studio 中工作。用户可以在已发布站点上使用活动目录帐户和密码登录,但是当我尝试在 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();
}
}