我正在尝试让一些用户更新其在活动目录(AD)中的电子邮件地址。我正在尝试使用MembershipUser类实现它。但是出现“通用访问被拒绝错误”。这是我的代码:
string userName = "sathish";
System.Web.Security.MembershipUser userDetails = System.Web.Security.Membership.GetUser(userName);
if (userDetails != null)
{
userDetails.Email = "[email protected]";
System.Web.Security.Membership.UpdateUser(userDetails); // getting access denied error here
}
我的问题是
我是否需要适当的特权才能将电子邮件地址更新为AD?
我们是否有任何属性可以验证我当前的访问级别?
是否可以通过编程模拟特权来更新电子邮件地址?
最佳答案
如果您使用的是.NET 3.5及更高版本,则应签出System.DirectoryServices.AccountManagement
(S.DS.AM)命名空间。在这里阅读所有内容:
Managing Directory Security Principals in the .NET Framework 3.5
基本上,您可以定义域上下文并轻松找到AD中的用户和/或组:
// set up domain context for your current, default domain
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find user by name
string userName = "sathish";
UserPrincipal user = UserPrincipal.FindByIdentity(userName );
// if user is found - update it's e-mail address and save
if(user != null)
{
user.EmailAddress = "[email protected]";
user.Save();
}
新的S.DS.AM使得与AD中的用户和组玩起来非常容易:
关于c# - 使用MembershipUser广告更新电子邮件地址-拒绝访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5424821/