我需要限制只有一个特定的用户帐户才能访问我的应用程序。我在WMI下找到了用于查找用户帐户的类,但我不知道如何识别哪个类正在运行我的应用程序。
发布于 2009-08-17 17:59:11
获取当前用户名的方法比使用WMI更简单。
WindowsIdentity.GetCurrent().Name将为您提供当前Windows用户的名称。
Environment.Username将为您提供当前登录用户的名称。
这两者之间的不同之处在于,WindowsIdentity.GetCurrent().Name还将包括域名和用户名(即,MYDOMAIN\adrian而不是adrian)。如果您需要Environment的域名,可以使用Environment.UserDomainName。
编辑
如果你真的想使用WMI来做这件事,你可以这样做:
不幸的是,ManagementObjectCollection上没有索引器属性,所以您必须枚举它才能获得第一个(也是唯一的)结果。
发布于 2009-08-17 17:50:55
您不一定需要使用WMI。查看WindowsIdentity。
发布于 2009-08-17 17:59:39
最简单的方法是通过Environment类:
还有几种方法可以限制特定用户(尽管检查角色更为常见)。
除了显而易见的
您还可以在整个类或特定方法上使用以下属性:
对于低级的、可重用的方法来说,这可能会更可靠一些。
请注意,您可以同时使用这两种方法,使用if()作为程序正常流程的一部分,并使用该属性作为关键方法的保护措施来检查用户。
https://stackoverflow.com/questions/1289397
复制相似问题