我希望能够检查一个用户名,如果该用户是该机器的域用户或本地用户(使用.NET)但可以在网上找到很多
public static Boolean isLocalUser (string name)
{
//code here
}
EDIT 例如,您将me.user作为字符串
答案 0 :(得分: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;
}
答案 1 :(得分:3)
大卫有钱,要检查当前用户是否属于域名,您可以查看Environment.UserDomainName
并将其与当前用户进行比较。
在MSDN
添加更多信息答案 2 :(得分:3)
对我来说,到目前为止这种方法运作良好。 (离开使用)。
bool IsLocalUser(string accountName)
{
var domainContext = new PrincipalContext(ContextType.Machine);
return Principal.FindByIdentity(domainContext, accountName) != null;
}
但请注意,这不会识别“系统”帐户。我们单独检查,因为它始终是本地帐户。
答案 3 :(得分:1)
本地用户的帐户名称将以机器名称为前缀。域用户的帐户名称将以其原始域为前缀。如果计算机名称和帐户前缀名称不匹配,或者帐户名称前缀与本地计算机匹配,则通常可以安全地假设其本地帐户。