2015-06-29 111 views
0

我已經打開了Outlook,我需要檢查它是否以管理員身份打開。我嘗試瞭如下代碼,但它檢查VS是否以管理員身份打開。管理權限(要檢查我的Outlook是否以管理員身份打開)

public bool IsRunningAsLocalAdmin() 
    { 
     WindowsIdentity cur = WindowsIdentity.GetCurrent(); 
     foreach (IdentityReference role in cur.Groups) 
     { 
      if (role.IsValidTargetType(typeof(SecurityIdentifier))) 
      { 
       SecurityIdentifier sid = (SecurityIdentifier)role.Translate(typeof(SecurityIdentifier)); 
       if (sid.IsWellKnown(WellKnownSidType.AccountAdministratorSid) || sid.IsWellKnown(WellKnownSidType.BuiltinAdministratorsSid)) 
       { 
        return true; 
       } 

      } 
     } 

     return false; 
    } 

我需要檢查外觀是否打開以管理員身份或沒有。

回答

0

OpenProcess(PROCESS_QUERY_INFORMATION)+ OpenProcessToken(TOKEN_QUERY)獲得令牌,然後傳遞令牌和CreateWellKnownSid(WinBuiltinAdministratorsSid)SID來CheckTokenMembership()

爲了能夠打開(幾乎)爲PROCESS_QUERY_INFORMATION每一道工序訪問您需要以管理員身份運行並使用debug privileges

查看Check if another process has admin privileges in .NET瞭解更多信息。

+0

我是.Net的新手。你能幫我拿出代碼嗎? –

+0

您需要使用Windows API函數。 –

相關問題