2012-02-16 1 views
1

У меня есть приложение, содержащее параметры конфигурации, которые должны быть изменены только пользователем, входящим в группу Active Directory MyAdvancedUsers. Это приложение представляет собой настольное приложение C# .NET 4.0 (не веб-приложение)Требовать пароль для входа в форму администрирования в приложении

Когда приложение работает с обычными правами пользователя, можно ли разрешить доступ к форме настроек конфигурации членом MyAdvancedUsers, имея продвинутый пользователь вводит комбинацию имени пользователя и пароля Windows?

+0

Это приложение работает как пользователь? Если вы не используете эти учетные данные для повышения процесса (или, еще лучше, запустите другой процесс), это действительно не обеспечит каких-либо преимуществ в области безопасности и будет достаточно легко обходить несколькими способами. – Kitsune

+0

Как у вас есть обычные пользователи, подключившиеся к приложению? – rie819

+0

@ ne819 Приложение установлено на компьютере для «всех пользователей» и просто запускается из меню «Пуск» или ярлыка – DarwinIcesurfer

ответ

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

+0

@DarwinIcesurfer: [Домен Windows] (http://en.wikipedia.org/wiki/Windows_domain), я бы предположил. –

+0

@ DanielPryden: Спасибо за разъяснение. Это домен, который находится внизу стандартного диалогового окна входа в Windows. – DarwinIcesurfer