.NETは、特定のユーザーアカウントの下でコードを実行するための強力なツールを提供します。これは、なりすましとして知られています。これには、2つの重要な側面が含まれます。なりすましメカニズム自体と、ターゲットユーザーアカウントの資格情報へのアクセス
なりすましプロセス名前空間は必要なAPIを提供します。 近代的で効率的なアプローチは、
を利用します。この方法では、ユーザートークンハンドルと、非人格化されたユーザーのコンテキストの下で実行するコードを含むデリゲート(またはラムダ式)を使用します。
System.Security.Principal
WindowsIdentity.RunImpersonated
<code class="language-csharp">WindowsIdentity.RunImpersonated(userHandle, () => { // Code executed as the impersonated user });</code>
ネイティブwin32APIは、ユーザー名とパスワードを使用してユーザーアカウントのトークンを取得するために使用できますが、セキュリティとエラー処理の改善については、のようなマネージドラッパーを使用することを強くお勧めします。
LogonUser
重要な考慮事項と制限SimpleImpersonation
<code class="language-csharp">using SimpleImpersonation; var credentials = new UserCredentials(domain, username, password); using SafeAccessTokenHandle userHandle = credentials.LogonUser(LogonType.Interactive);</code>なりすましは本質的にローカルマシンに制限されています。 リモートマシンでリソースにアクセスするには、両方のマシンが同じドメイン内に存在するか、信頼関係を共有する必要があります。 このアプローチは、ドメインレスシステムにユーザーになりすましているのに適していません。
以上が.NETアプリケーションにユーザーになりすましてください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。