gpt4 book ai didi

c# - 扩展用户主体; FindByIdentity() 失败

转载 作者:太空狗 更新时间:2023-10-29 18:21:07 27 4
gpt4 key购买 nike

扩展 UserPrincipal 以利用其内置属性...当我们重载 FindByIdentity() 方法时遇到问题。

来自 Microsoft 的示例 http://msdn.microsoft.com/en-us/library/bb384372%28VS.90%29.aspx (为简洁起见排除的部分):

[DirectoryRdnPrefix("CN")]
[DirectoryObjectClass("inetOrgPerson")]
public class InetOrgPerson : UserPrincipal {

// Implement the overloaded search method FindByIdentity
public static new InetOrgPerson FindByIdentity(PrincipalContext context,
string identityValue) {
return (InetOrgPerson)FindByIdentityWithType(context,
typeof(InetOrgPerson),
identityValue);
}

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

如果我从 MSDN 示例中获取准确的代码并将其粘贴到我的应用程序中,则它不起作用。对 InetOrgPerson.FindByIdentity() 的调用返回 null,如下所示:

if (null == InetOrgPerson.FindByIdentity(principalContext, UserName)) {
throw new Exception("bah");
}

事实上,在 InetOrgPerson.FindByIdentity() 中,对 FindByIdentityWithType() 的调用返回 null,如下所示:

if (null == FindByIdentityWithType(context, typeof(InetOrgPerson), identityType, identityValue) {
throw new Exception("bah");
}

但是,调用:

FindByIdentityWithType(context, typeof(UserPrincipal), identityType, identityValue)

给我想要的用户对象。除了我不能使用它,因为它不能转换为我需要返回的 InetOrgPerson 对象。

什么给了?我希望 Microsoft 自己的示例代码能够运行,但它并没有运行,因此我尝试基于该示例编写的代码自然也无法运行。有人做过这个吗?

提前致谢!詹姆斯

最佳答案

确保您要搜索的用户确实属于 inetOrgPerson 类。

关于c# - 扩展用户主体; FindByIdentity() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3515606/

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