ConnectionOptions.Impersonation Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает уровень олицетворения COM, который необходимо использовать для операций данного подключения.
public:
property System::Management::ImpersonationLevel Impersonation { System::Management::ImpersonationLevel get(); void set(System::Management::ImpersonationLevel value); };
public System.Management.ImpersonationLevel Impersonation { get; set; }
member this.Impersonation : System.Management.ImpersonationLevel with get, set
Public Property Impersonation As ImpersonationLevel
Значение свойства
Возвращает значение перечисления ImpersonationLevel, описывающее уровень олицетворения, используемый для подключения к WMI.
Примеры
В следующем примере показано подключение к удаленному компьютеру и отображение сведений об операционной системе на удаленном компьютере. Создается ConnectionOptions для подключения к удаленному компьютеру с требуемыми параметрами подключения.
using System;
using System.Management;
public class RemoteConnect
{
public static void Main()
{
// Build an options object for the remote connection
// if you plan to connect to the remote
// computer with a different user name
// and password than the one you are currently using.
// This example uses the default values.
ConnectionOptions options =
new ConnectionOptions();
options.Impersonation =
System.Management.ImpersonationLevel.Impersonate;
// Make a connection to a remote computer.
// Replace the "FullComputerName" section of the
// string "\\\\FullComputerName\\root\\cimv2" with
// the full computer name or IP address of the
// remote computer.
ManagementScope scope =
new ManagementScope(
"\\\\FullComputerName\\root\\cimv2", options);
scope.Connect();
//Query system for Operating System information
ObjectQuery query = new ObjectQuery(
"SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(scope,query);
ManagementObjectCollection queryCollection = searcher.Get();
foreach ( ManagementObject m in queryCollection)
{
// Display the remote computer information
Console.WriteLine("Computer Name : {0}",
m["csname"]);
Console.WriteLine("Windows Directory : {0}",
m["WindowsDirectory"]);
Console.WriteLine("Operating System: {0}",
m["Caption"]);
Console.WriteLine("Version: {0}", m["Version"]);
Console.WriteLine("Manufacturer : {0}",
m["Manufacturer"]);
}
}
}
Imports System.Management
Public Class RemoteConnect
Public Overloads Shared Function Main( _
ByVal args() As String) As Integer
' Build an options object for the remote connection
' if you plan to connect to the remote
' computer with a different user name
' and password than the one you are currently using
Dim options As ConnectionOptions
options = New ConnectionOptions
options.Impersonation = 3
' System.Management.ImpersonationLevel.Impersonate = 3
' Make a connection to a remote computer.
' Replace the "FullComputerName" section of the
' string "\\FullComputerName\root\cimv2" with
' the full computer name or IP address of the
' remote computer.
Dim scope As ManagementScope
scope = New ManagementScope( _
"\\FullComputerName\root\cimv2", options)
scope.Connect()
' Query system for Operating System information
Dim query As ObjectQuery
query = New ObjectQuery( _
"SELECT * FROM Win32_OperatingSystem")
Dim searcher As ManagementObjectSearcher
searcher = _
New ManagementObjectSearcher(scope, query)
Dim queryCollection As ManagementObjectCollection
queryCollection = searcher.Get()
Dim m As ManagementObject
For Each m In queryCollection
' Display the remote computer information
Console.WriteLine("Computer Name : {0}", _
m("csname"))
Console.WriteLine("Windows Directory : {0}", _
m("WindowsDirectory"))
Console.WriteLine("Operating System: {0}", _
m("Caption"))
Console.WriteLine("Version: {0}", m("Version"))
Console.WriteLine("Manufacturer : {0}", _
m("Manufacturer"))
Next
Return 0
End Function
End Class
Комментарии
Этот ImpersonationLevel.Impersonate параметр является выгодным, если поставщик является доверенным приложением или службой. Это избавляет поставщика от необходимости выполнять проверки удостоверений клиента и доступа для запрошенных операций. Однако если по какой-либо причине поставщик не может быть доверенным, предоставление ему олицетворения клиента может представлять угрозу безопасности. В таких случаях мы рекомендуем задать этому свойству более низкое значение, например ImpersonationLevel.Identify. Обратите внимание, что это может привести к сбою поставщика при выполнении запрошенных операций из-за отсутствия достаточных разрешений или невозможности выполнить проверки доступа.
Значение свойства
Уровень олицетворения COM, используемый для операций в этом соединении. Значение по умолчанию — ImpersonationLevel.Impersonate, которое указывает, что поставщик WMI может олицетворять клиента при выполнении запрошенных операций в этом соединении.
Безопасность .NET Framework
Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в статье Использование библиотек из частично доверенного кода.