2016-08-22 10 views
-2

私の持つ唯一の情報がユーザー名である場合は、ユーザーが管理者グループのメンバであるかどうかを知る方法関連性)?ユーザーが管理者グループのメンバであるかどうかをユーザー名/ドメインで確認する方法

私は現在のユーザーに対してこの情報を取得する方法を知っています。 しかし、私の場合は、まだログインしていないユーザーのためにこの情報を取得する必要があります(私はCredential Providerで作業しています)。したがって、私はユーザー名&ドメインのみを使用できます。

この問題は、Windowsマシンにのみ関係します。

私はC#/ C++で作業しています。

に示したように私はC#のWindowsPrincipalクラスの認識しています:WindowsPrincipal

私もIsUserAnAdmin()のWindows APIを認識しています。

using System.Security.Principal; 
    public bool admin() 
{ 
WindowsPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); 
     return principal.IsInRole(WindowsBuiltInRole.Administrator); 
} 

に:私はまだC#で​​は

+0

あなたはcmd-line 'net user/domain the_user_id'を試しましたか?それは多くのものを返します。 –

+0

管理者権限は何ですか?ファイル、サーバー、彼らがいるPC?あなたはウェブサイトやWindowsアプリケーションを実行していますか?WindowsマシンやUNIXマシンから実行していますか?あなたを助けるのに十分な情報がないだけです。 – BugFinder

+1

Windowsはセキュリティで保護されたオブジェクトを使用します。オブジェクトにアクセスするための要件(ファイルやプロセスなど)は、オブジェクトごとに個別に設定されます。 * "このユーザーはすべてにアクセスできます" *というユーザーアカウントはありません。ソリューションの代わりに本当の質問をしてみませんか? – IInspectable

答えて

0

ルックをする必要がありますsグループ。これは簡単なことではありませんが、それは不当に難しいことではありません。あなたのためにそれを行うための組み込みのライブラリはありません。

これは、関連するすべてのグループを読み取るためにActive Directoryに十分なアクセス権があることを前提としています。既定では、ローカルシステムアカウントでこれを行うことができますが、ドメイン管理者がグループメンバーシップを読み取ることができないように、システム管理者がグループのセキュリティアクセス許可を変更することを禁止する必要があります。

また、資格情報プロバイダがどのセキュリティコンテキストで実行されているかわからないため、ドメインメンバシップを列挙するために別のサービスを実行する必要があります。

第2のキャッチは、Everyone、INTERACTIVEなどの特別なセキュリティプリンシパルは含まれていないが、おそらくこれらを無視することができ、Administratorsグループのメンバであることは非常に珍しいことです。必要と思われる場合は、それらを含めることもできますし、システム管理者がこれを行うことを明示的に禁止することもできます。

おそらくは、ユーザーのパスワードを取得するまでこの決定を行う必要がないように、必要に応じてアーキテクチャを変更するのが適切です。

+0

ありがとう!私はあなたのアドバイスに従うことができ、ユーザーのグループメンバーシップを列挙することができると思います... – g1500

-2

(私のコードは、ユーザーが実際にWindowsマシンに入る前に実行される)にログインしていないユーザーを扱っていますので、しかし 、私はこれらのメソッドを使用することはできませんC++:「ほとんど常に右が」十分に良好であれば、あなたは再帰的に使用すると、管理者を見つけるかどうかを確認するために、ユーザーのグループメンバーシップを列挙するために、このhttps://msdn.microsoft.com/en-us/library/bb776463.aspx

+0

質問から引用*現在のユーザーのためにこの情報を取得する方法を知っています* –

+0

私はCredential Providerで作業しているので使用できません。私の場合は現在のユーザーはいません。ユーザー名のみ(該当する場合は+ドメイン) – g1500

関連する問題