6

如果该用户是机器的域用户或本地用户(最好使用.NET),我希望能够检查提供的用户名,但可以在网上找到很多

public static Boolean isLocalUser (string name)
{
//code here
}

编辑例如你被给予 me.user 作为一个字符串

4

4 回答 4

4
public bool DoesUserExist(string userName)
{
    bool exists = false;
    try
    {
    using (var domainContext = new PrincipalContext(ContextType.Domain, "DOMAIN"))
    {
        using (var foundUser = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, userName))
        {
            exists = true;
        }
      }
    }
    catch(exception ex)
    {
      //Exception could occur if machine is not on a domain
    } 
    using (var domainContext = new PrincipalContext(ContextType.Machine))
    {
        using (var foundUser = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, userName))
        {
            exists = true;
        }
    }
   return exists;
}

来源:使用 C# 检查 Active Directory 中是否存在 UserID

于 2012-10-03T14:18:02.290 回答
4

对我来说,到目前为止,这工作得很好。(离开使用)。

bool IsLocalUser(string accountName)
{
  var domainContext = new PrincipalContext(ContextType.Machine);
  return Principal.FindByIdentity(domainContext, accountName) != null;
}

但请注意,这将无法识别“系统”帐户。我们会单独检查,因为它始终是本地帐户。

于 2014-03-26T15:12:30.173 回答
3

大卫很赚钱,要检查当前用户是否属于域,您可以检查Environment.UserDomainName并将其与当前用户进行比较。

MSDN上的更多信息

于 2012-10-03T14:18:05.817 回答
1

本地用户将拥有以机器名称为前缀的帐户名称。域用户的帐户名将以其原始域为前缀。如果机器名称和帐户前缀名称不匹配,或者如果帐户名称前缀与本地机器匹配,则通常可以安全地假定其为本地帐户。

于 2012-10-03T14:13:53.227 回答