检查用户是域用户还是本地用户

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

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

编辑例如你被赋予me.user作为字符串

 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

大卫是钱,要检查当前用户是否是域的一部分,您可以检查Environment.UserDomainName并将其与当前用户进行比较。

在MSDN上获得更多信息

对我来说,到目前为止,这种方法运作良好。 (离开使用了)。

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

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

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