【问题标题】:Is Guid of a User in ActiveDirectory Nullable?ActiveDirectory 中用户的 Guid 是否可以为空?
【发布时间】: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


【解决方案1】:

UserPrincipal 类上的Guid 属性继承自基类Principal,其中定义为Nullable<Guid>。事情就是这样——你需要处理这个问题。

为什么选择将其定义为可空 - 我不知道。根据我对 AD 的经验,您遇到的所有来自 Principal 的对象 - 组、计算机、用户等 - 都将分配一个 GUID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    相关资源
    最近更新 更多