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 に答える