gpt4 book ai didi

c# - 在 Framework 4.5 中获取事件目录用户属性

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:23 49 4
gpt4 key购买 nike

我有一个代码可以从特定组获取用户。

        PrincipalContext ctx = new PrincipalContext(ContextType.Domain, domainName);
GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, groupName);

if (grp != null)
{
foreach (Principal p in grp.GetMembers(true))
{
Console.WriteLine(p.Name);
}
}

问题是我无法获取用户手机、家庭电话、部门、国家/地区。有人知道如何使用这种方法完成吗?

最佳答案

ExtensionGet @HuroSwords 答案中的方法不能直接使用,因为它是 protected 方法。

如前所述elsewhere您需要创建自己的子类才能使用它。我在下面包含了我过去为获得额外的用户属性所做的工作的示例。

[DirectoryRdnPrefix("CN")]
[DirectoryObjectClass("User")]
public class UserPrincipalExtended : UserPrincipal
{
public UserPrincipalExtended(PrincipalContext context) : base(context)
{
}

// Implement the overloaded search method FindByIdentity to return my extended type
public static new UserPrincipalExtended FindByIdentity(PrincipalContext context, string identityValue)
{
return (UserPrincipalExtended)FindByIdentityWithType(context, typeof(UserPrincipalExtended), identityValue);
}

// Implement the overloaded search method FindByIdentity to return my extended type
public static new UserPrincipalExtended FindByIdentity(PrincipalContext context, IdentityType identityType, string identityValue)
{
return (UserPrincipalExtended)FindByIdentityWithType(context, typeof(UserPrincipalExtended), identityType, identityValue);
}

[DirectoryProperty("physicalDeliveryOfficeName")]
public string Department
{
get
{
if (ExtensionGet("physicalDeliveryOfficeName").Length != 1)
return null;
return (string)ExtensionGet("physicalDeliveryOfficeName")[0];
}
}
}

然后像使用普通 UserPrincipal 对象一样使用子类。

var domain = new PrincipalContext(ContextType.Domain);
var userPrincipal = UserPrincipalExtended.FindByIdentity(domain, HttpContext.Current.User.Identity.Name);
Console.WriteLine(userPrincipal.Location);

在您的情况下,您可能需要重新获取委托(delegate)人。

关于c# - 在 Framework 4.5 中获取事件目录用户属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23882438/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com