我正在尝试配置一些用户更新其在Active Directory(AD)中的电子邮件地址。我正在尝试使用MembershipUser类来实现它。但是获得“一般访问被拒绝错误”。这是我的代码:
string userName = "sathish";
System.Web.Security.MembershipUser userDetails = System.Web.Security.Membership.GetUser(userName);
if (userDetails != null)
{
userDetails.Email = "sathish@xyzee.com";
System.Web.Security.Membership.UpdateUser(userDetails); // getting access denied error here
}
我的问题是,
我是否需要适当的优先级才能将电子邮件地址更新为AD?
我们是否有任何属性可以验证我当前的访问级别?
是否可以通过编程方式模拟权限以更新电子邮件地址?
答案 0 :(得分:1)
如果您使用的是.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 = "sathish@xyzee.com";
user.Save();
}
新的S.DS.AM使得在AD中使用用户和群组变得非常容易: