C# 检查windows用户是否存在,而不链接其他DLL并在c中引发异常#
我想检查本地计算机上是否存在C#程序中的用户。我发现的唯一两种方法是:C# 检查windows用户是否存在,而不链接其他DLL并在c中引发异常#,c#,windows-8,.net-4.5,C#,Windows 8,.net 4.5,我想检查本地计算机上是否存在C#程序中的用户。我发现的唯一两种方法是: 像这样使用System.DirectoryServices.AccountManagement 在用户不存在的情况下引发异常,如下所示 我不想同时使用它们: 不是第一个原因,因为我不想为单个检查添加引用,也不是第二个原因,因为这不是例外情况,在某些情况下,用户不存在,这是正常的 因此,我有两个问题: 1) 为什么我们要在第二种情况下使用active directory,为什么我们不在用户目录中查找用户目录呢? 2) 有没有其
2) 有没有其他方法可以做到这一点
Upd:谢谢,BendEg,Dan J,现在我只有一个问题你应该再次检查active directory,以确定用户是否真的存在。当您仅检查本地计算机时,将只返回已登录到该计算机的用户 如果不想使用其他程序集(建议使用),可以使用
DllImport
使用Win32检查用户是否存在。但是这条路不太好
如果您想了解这一点,请查看:这取决于您为什么对检查用户的存在感兴趣。
Users
中存在文件夹并不意味着用户存在;从技术上讲,这只是意味着Users
中有一个同名文件夹。该文件夹可能属于已被删除的帐户。为了最好地回答这个问题,我们需要知道为什么要检查用户是否存在。“System”是一个完全有效的用户名。您是否在c:\users目录中看到它?丹J,我的程序启动了一个过程。在某些计算机上有一个具有特殊权限的用户,进程应该代表该用户启动,在某些计算机上没有这样的用户,因此进程应该代表当前用户启动