检查 windows 用户是否存在而不链接额外的 dll 并在 c# 中抛出异常

Check windows user existence without linking additional dlls and throwing exceptions in c#

我想在 C# 程序中检查本地计算机上是否存在用户。我发现的唯一两种方法如下:

  1. 像这里一样使用 System.DirectoryServices.AccountManagementFaster way to find out if a user exists on a system?
  2. 在用户不存在的情况下抛出异常 c#: how to know whether a 'user account' exists in windows?

我不想同时使用它们: 不是第一个,因为我不想为单个检查添加引用,而不是第二个,因为它不是异常情况,在某些情况下用户不存在并且很正常。

所以,我有 两个 问题: 1)第二种情况为什么要用active directory,为什么不直接在Users目录下查找用户目录呢?
2) 有没有其他方法可以做到这一点?

Upd:谢谢​​,BendEg,Dan J,现在我只有一个问题

您应该再次检查活动目录,以确定用户是否真的存在。当只勾选本机时,只返回本机登录的用户。

如果您不想使用额外的程序集(将被推荐),您可以使用 DllImport 来使用 Win32 检查用户是否存在。但是这种方式不太好。

如果您想阅读相关内容,请查看:Getting a list of user profiles on a computer in C++ Win32