检查用户是域用户还是本地用户
我希望能够检查给用户名,如果该用户是机器用户或本地用户(使用.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; }
但请注意,这不会识别“系统”帐户。 我们单独检查,因为它始终是本地帐户。
本地用户的帐户名称将以机器名称为前缀。 域用户的帐户名称将以其原始域为前缀。 如果计算机名称和帐户前缀名称不匹配,或者帐户名称前缀与本地计算机匹配,则通常可以安全地假设其本地帐户。