2012-02-16 9 views
1

私は、MyAdvancedUsers Active Directoryグループの一部であるユーザーのみが変更する必要がある構成設定を含むアプリケーションを持っています。このアプリケーションはC#.NET 4.0のデスクトップアプリケーションです(Webアプリケーションではありません)アプリケーションに管理フォームを入力するためにwindowsパスワードが必要

アプリケーションが通常のユーザー権限で実行されている場合は、MyAdvancedUsersのメンバーが構成設定フォームにアクセスできるようにするには、上級ユーザーは、彼/彼女のWindowsユーザー名とパスワードの組み合わせを入力しますか?

+0

このアプリは現在のユーザーとして実行されていますか?これらの資格情報を使用してプロセスを昇格させないと(または、別のプロセスを昇格させようとするよりも)、実際にはセキュリティ上のメリットは得られません。 – Kitsune

+0

通常のユーザーはどのようにアプリケーションにログインしていますか? – rie819

+0

@ ne819アプリは「すべてのユーザー」のためにマシンにインストールされ、スタートメニューまたはショートカットから起動されます。 – DarwinIcesurfer

答えて

2

これはかなり簡単です。 thusly、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

関連する問題