如果该用户是机器的域用户或本地用户(最好使用.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;
}
对我来说,到目前为止,这工作得很好。(离开使用)。
bool IsLocalUser(string accountName)
{
var domainContext = new PrincipalContext(ContextType.Machine);
return Principal.FindByIdentity(domainContext, accountName) != null;
}
但请注意,这将无法识别“系统”帐户。我们会单独检查,因为它始终是本地帐户。
大卫很赚钱,要检查当前用户是否属于域,您可以检查Environment.UserDomainName
并将其与当前用户进行比较。
MSDN上的更多信息
本地用户将拥有以机器名称为前缀的帐户名称。域用户的帐户名将以其原始域为前缀。如果机器名称和帐户前缀名称不匹配,或者如果帐户名称前缀与本地机器匹配,则通常可以安全地假定其为本地帐户。