2010-02-10 218 views
1

當我運行我的C#Windows窗體應用程序在Windows 7:在Windows 7中,「以管理員身份運行」,當UAC被關閉不以管理員身份運行

  • 用戶在「用戶」組是不是在管理員組
  • 在其中用戶帳戶控制被關斷
  • 以機器右擊EXE並選擇「作爲管理員運行」

此代碼:

WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);

仍然返回false。這是預期的行爲?

回答

2

我很肯定,如果用戶不是管理員,則以管理員身份運行不會將該用戶的該應用程序的上下文提升爲管理員的上下文。這將是一個可怕的安全漏洞,並最終實現將用戶作爲普通用戶的強制安全性。

+0

爲什麼它是一個安全漏洞? (假設用戶必須輸入管理員密碼) – 2010-02-10 16:08:23

+0

嗯,是的。但令人驚訝的是,此時用戶沒有信息? – 2010-02-10 16:12:11

+1

@Mthethew:用戶不必輸入管理員密碼。你真正想要的是「以用戶身份運行」命令,並讓你的應用程序在管理員的用戶環境下運行。 @Duncan:不幸的是:是的。令人驚訝的是:我認爲陪審團就是這樣! :) – 2010-02-10 16:20:00

相關問題