2012-02-16 47 views
1

我有一個應用程序,其中包含的配置設置只能由屬於MyAdvancedUsers Active Directory組的用戶更改。此應用程序是C#.NET 4.0桌面應用程序(而不是Web應用程序)要求Windows密碼在應用程序中輸入管理表單

當應用程序以常規用戶權限運行時,是否可以允許MyAdvancedUsers的成員訪問配置設置表單高級用戶輸入他/她的Windows用戶名和密碼組合?

+0

此應用是否以當前用戶身份運行?除非您使用這些憑證來提升流程(或者更好,然後再啓動另一個流程),否則這不會提供任何安全性優勢,並且很容易繞過多種方式。 – Kitsune 2012-02-16 17:08:21

+0

你如何讓普通用戶登錄到應用程序? – rie819 2012-02-16 18:01:02

+0

@ ne819該應用程序安裝在「所有用戶」的計算機上,只需從開始菜單或快捷方式啓動即可 – DarwinIcesurfer 2012-02-16 20:55:24

回答

2

這樣做相當簡單。創建一個PrincipalContext並在其上調用ValidateCredentials(),正是如此:

bool ValidateCredentials(String domain, String user, String password) { 
    using (PrincipalContext principal = new PrincipalContext(ContextType.Domain, "THE DOMAIN GOES HERE") 
    { 
    return principal.ValidateCredentials(user, password); 
    } 
} 

嘗試this site用於捕獲來自用戶的憑據的好方法。

@Kitsune:你不需要提高權限來驗證用戶的憑證。

+0

我不明白如何在用戶計算機上安裝的應用程序上使用「域」。什麼進入域字符串? – DarwinIcesurfer 2012-02-16 21:01:18

+0

@DarwinIcesurfer:我會推測:[Windows域](http://en.wikipedia.org/wiki/Windows_domain)。 – 2012-02-16 21:44:00

+0

@DanielPryden:謝謝你的澄清。它是位於標準Windows登錄對話框底部的域。 – DarwinIcesurfer 2012-02-16 23:34:32

相關問題