ConnectionOptions.Impersonation Vlastnost

Definice

Získá nebo nastaví úroveň zosobnění modelu COM pro operace v tomto připojení.

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

Hodnota vlastnosti

Vrátí hodnotu výčtu ImpersonationLevel označující úroveň zosobnění použitou pro připojení k rozhraní WMI.

Příklady

Následující příklad se připojí ke vzdálenému počítači a zobrazí informace o operačním systému ve vzdáleném počítači. Vytvoří ConnectionOptions se pro připojení ke vzdálenému počítači s požadovanými možnostmi připojení.

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

Poznámky

Nastavení ImpersonationLevel.Impersonate je výhodné, pokud je zprostředkovatel důvěryhodnou aplikací nebo službou. Eliminuje se tím nutnost, aby zprostředkovatel prováděl kontroly identity klienta a přístupu pro požadované operace. Pokud však z nějakého důvodu nelze zprostředkovateli důvěřovat, může jeho povolení zosobnění klienta představovat bezpečnostní hrozbu. V takových případech doporučujeme, aby klient tuto vlastnost nastavil na nižší hodnotu, například ImpersonationLevel.Identify. Upozorňujeme, že to může způsobit selhání zprostředkovatele při provádění požadovaných operací, kvůli nedostatku dostatečných oprávnění nebo nemožnosti provádět kontroly přístupu.

Hodnota vlastnosti

Úroveň zosobnění modelu COM, která se má použít pro operace v tomto připojení. Výchozí hodnota je ImpersonationLevel.Impersonate, což označuje, že zprostředkovatel WMI může zosobnit klienta při provádění požadovaných operací v tomto připojení.

Zabezpečení rozhraní .NET Framework

Plná důvěra přímému volajícímu. Tento člen nemůže být použit částečně důvěryhodným kódem. Další informace najdete v tématu Použití knihoven z částečně důvěryhodného kódu.

Platí pro