检查 windows 用户是否存在而不链接额外的 dll 并在 c# 中抛出异常
Check windows user existence without linking additional dlls and throwing exceptions in c#
我想在 C# 程序中检查本地计算机上是否存在用户。我发现的唯一两种方法如下:
- 像这里一样使用 System.DirectoryServices.AccountManagementFaster way to find out if a user exists on a system?
- 在用户不存在的情况下抛出异常 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
我想在 C# 程序中检查本地计算机上是否存在用户。我发现的唯一两种方法如下:
- 像这里一样使用 System.DirectoryServices.AccountManagementFaster way to find out if a user exists on a system?
- 在用户不存在的情况下抛出异常 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