![](/img/trans.png)
[英]C# Active Directory - Migrate to System.DirectoryServices.AccountManagement
[英]How I get Active Directory User Properties with System.DirectoryServices.AccountManagement Namespace?
我想从用户获取Active Directory属性,我想使用System.DirectoryServices.AccountManagement
。
我的代码:
public static void GetUserProperties(string dc,string user)
{
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, dc);
UserPrincipal u = UserPrincipal.FindByIdentity(ctx, user);
string firstname = u.GivenName;
string lastname = u.Surname;
string email = u.EmailAddress;
string telephone = u.VoiceTelephoneNumber;
...//how I can get company and other properties?
}
您可以转换到DirectoryServices命名空间以获取所需的任何属性。
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, dc);
UserPrincipal u = UserPrincipal.FindByIdentity(ctx, user);
string firstname = u.GivenName;
string lastname = u.Surname;
string email = u.EmailAddress;
string telephone = u.VoiceTelephoneNumber;
string company = String.Empty;
...//how I can get company and other properties?
if (userPrincipal.GetUnderlyingObjectType() == typeof(DirectoryEntry))
{
// Transition to directory entry to get other properties
using (var entry = (DirectoryEntry)userPrincipal.GetUnderlyingObject())
{
if (entry.Properties["company"] != null)
company = entry.Properties["company"].Value.ToString();
}
}
如果你想更改属性,请不要忘记在更改值后调用userPrincipal.save()。
entry.Properties["company"].value = company;
userPrincipal.save();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.