2013-03-14 127 views
0

我編寫了一個程序,需要用戶使用本地管理員帳戶登錄。 但是本地管理員帳戶名稱因每臺PC而不同,所以我無法對用戶名進行硬編碼。Vb.net程序使用本地管理員帳戶登錄

下面的代碼只在管理員組中檢索到用戶,但沒有進行身份驗證。可以幫助? 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 

回答

0

確保您的應用程序具有管理權限運行的最好,最簡單的辦法就是embed a manifest,使這樣一個需求。

您應該從不硬編碼類似這樣的東西,並且UAC的存在意味着不能保證作爲管理員組成員的用戶在您的進程中擁有管理權限。

VB.NET編譯器會自動將默認清單嵌入到應用程序中,但該默認清單不會請求管理權限。所以你需要添加一個自定義清單。
得到一個,請按照下列步驟操作:

  1. 在解決方案資源管理器右鍵單擊項目。
  2. 從上下文菜單中選擇「屬性」。
  3. 切換到「應用程序」選項卡。
  4. 單擊「查看Windows設置」打開清單文件。
  5. 進行以下修改:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />