AD使用MembershipUser更新电子邮件地址 - 拒绝访问

时间:2011-03-24 20:00:58

标签: c# asp.net asp.net-membership

我正在尝试配置一些用户更新其在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
        }

我的问题是,

  1. 我是否需要适当的优先级才能将电子邮件地址更新为AD?

  2. 我们是否有任何属性可以验证我当前的访问级别?

  3. 是否可以通过编程方式模拟权限以更新电子邮件地址?

1 个答案:

答案 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中使用用户和群组变得非常容易: