0

我编写了一个需要用户使用本地管理员帐户登录的程序。但是每台 PC 的本地管理员帐户名称都不同,因此我无法对用户名进行硬编码。

下面的代码只检索了管理员组中的用户,而不是身份验证。可以帮忙?1.如何验证用户名和密码?2.如何强制用户仅使用本地用户帐户登录。

        Dim localMachine As New DirectoryEntry("WinNT://" & "localhost")
        Dim admGroup As DirectoryEntry = localMachine.Children.Find("Administrators", "group")
        Dim members As Object = admGroup.Invoke("members", Nothing)
        For Each groupMember As Object In CType(members, IEnumerable)
            Dim member As New DirectoryEntry(groupMember)
            MsgBox(member.Name)
        Next
4

1 回答 1

0

确保您的应用程序以管理权限运行的最佳和最简单的方法是嵌入一个满足此类需求的清单。

永远不应该对这样的东西进行硬编码,并且 UAC 的存在意味着不能保证作为 Administrators 组成员的用户目前对您的进程具有管理权限。

VB.NET 编译器自动将默认清单嵌入到您的应用程序中,但该默认清单不请求管理权限。因此,您需要添加一个自定义清单。
要获得一个,请按照下列步骤操作:

  1. 在解决方案资源管理器中右键单击您的项目。
  2. 从上下文菜单中选择“属性”。
  3. 切换到“应用程序”选项卡。
  4. 单击“查看 Windows 设置”以打开清单文件。
  5. 进行以下修改:
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
于 2013-03-14T06:02:06.287 回答