【发布时间】:2016-08-28 05:14:53
【问题描述】:
我正在使用 ASP.NET MVC,这是我的模型:
public class AdContactInfo
{
public Guid Guid { get; set; }
public string FullName { get; set; }
}
然后使用此代码 sn-p,我正在尝试搜索用户列表:
using (var searcher = new PrincipalSearcher(new UserPrincipal(principal) { DisplayName = term + "*" }))
{
var result = searcher.FindAll();
foreach (var item in result)
{
list.Add(new AdContactInfo
{ FullName = item.Name,
Guid = item.Guid });
}
}
我很惊讶 Guid = item.Guid 行有一个错误说 item.Guid 是 Nullable 并且不能转换为 Guid。
经过一番研究,我没有发现任何结果表明 ActiveDirectory 中的用户 Guid 可以包含 null。但是,我发现了一个 article,它说如果我将 ContextType 设置为 Machine,它将始终返回 null。
我想知道为什么它是 Nullable。
【问题讨论】:
-
UserPrincipal类上的Guid属性继承自基类Principal,其中定义为Nullable<Guid>。事情就是这样——你需要处理这个问题。为什么选择将其定义为 nullable - 我不知道。根据我对 AD 的经验,您遇到的所有来自Principal的对象 - 组、计算机、用户等 - 都将分配一个 GUID
标签: c# asp.net active-directory