使用本地管理员帐户登录Vb.net程序

时间:2013-03-14 05:51:40

标签: vb.net authentication administrator

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

以下代码仅检索Administrators组中的用户,但不检索身份验证。可以帮助? 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

1 个答案:

答案 0 :(得分:0)

确保您的应用程序以管理权限运行的最佳和最简单的方法是embed a manifest,这就是这样的需求。

您应该从不硬编码这样的任何内容,并且UAC的存在意味着无法保证作为Administrators组成员的用户目前对您的流程具有管理权限

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

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