首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从获取GUID或本机GUID

从获取GUID或本机GUID
EN

Stack Overflow用户
提问于 2014-12-12 16:22:41
回答 1查看 5.5K关注 0票数 4

我正在编写一个web服务,它检查用户是否存在于Active Directory中,以及用户帐户是否已启用。一旦检查完毕,我将继续验证他们的用户帐户。一旦他们成功地输入用户名和密码,我想为我认证的人获得GUIDNativeGuid。我希望使用GUIDNativeGUID在Server数据库中构建关系。

下面是我采取的方法:

代码语言:javascript
复制
public string isAuthenticated (string serverName, string userName, string pwd)
{
    string _serverName, _userName, _pwd;
    _serverName = serverName;
    _userName = userName;
    _pwd = pwd;

    string message;

    if (DoesUserExist (_userName) == true)
    {
        if (isActive(userName) == true)
        {
            try
            {
                DirectoryEntry entry = new DirectoryEntry(_serverName, _userName, _pwd);
                object nativeObject = entry.NativeObject;
                //issue is here
                string GUID = entry.Guid.ToString();
                string GUIDID = entry.NativeGuid;
                //end of issue
                message = "Successfully authenticated";
            }
            catch(DirectoryServicesCOMException ex)
            {
                    message = ex.Message;
            }
        }
        else
        {
                message = "Account is disabled";
        }
    }
    else
    {
        message = "There's an issue with your account.";
    }
    return message;      
}

当我尝试获取GUIDNativeGUID时,它每次都为不同的用户返回相同的ID

对于Active Directory中的不同对象,有什么不同的方法可以获得UNIQUE ID吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-12 16:32:55

如果您使用的是.NET 3.5或更高版本,则应该查看System.DirectoryServices.AccountManagement (S.DS.AM)命名空间。在这里读到所有的内容:

  • 在.NET框架3.5中管理目录安全原则
  • System.DirectoryServices.AccountManagement上的MSDN文档

基本上,您可以定义域上下文并在AD中轻松找到用户和/或组:

代码语言:javascript
复制
// set up domain context
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
    // find a user
    UserPrincipal user = UserPrincipal.FindByIdentity(ctx, _userName);

    if(user != null)
    {
       // get the GUID
       var objectGuid = user.Guid;
    }
}

新的S.DS.AM使得在AD中与用户和组玩真的很容易!我现在没有一个AD可以用来测试--但我希望这确实会给出用户对象的objectGuid属性值。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27447823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档