.netのなりすまし
を理解しています.NET Impersonationは、指定されたユーザーアカウントの下でコード実行を許可します。 .NETフレームワークは、なりすましとユーザーアカウント管理の両方に必要なAPIを提供します。
なりすましテクニック
名前空間は、なりすましを達成するためのいくつかの方法をいくつか提供します:
System.Security.Principal
WindowsIdentity.RunImpersonated
またはデリゲートを受け入れます。Action
Func<T>
WindowsIdentity.Impersonate
オブジェクトを生成し、構造化されたリソース管理のブロック内でのなりすましを有効にします。
WindowsImpersonationContext
using
資格情報を持つユーザーアカウントへのアクセス提供された資格情報を使用してユーザーアカウントにアクセスするには、通常、ネイティブWin32 API :が含まれます。
機能しますが、LogonUser
は複雑になります。 より単純な代替品は、
<code class="language-csharp">[DllImport("advapi32.dll")] internal static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, out IntPtr phToken);</code>です
LogonUser
SimpleImpersonation
制限:リモートなりすまし
<code class="language-csharp">using SimpleImpersonation; var credentials = new UserCredentials(domain, username, password); using (SafeAccessTokenHandle userHandle = credentials.LogonUser(LogonType.Interactive)) { // Your impersonated code here }</code>
なりすましは本質的にローカルです。同じドメインを共有したり、信頼関係を持っていない限り、リモートコンピューターには拡張されません。
以上が.NETでなりすましを実行する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。