ConnectionOptions.Impersonation Właściwość

Definicja

Pobiera lub ustawia poziom personifikacji COM, który ma być używany na potrzeby operacji w tym połączeniu.

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

Wartość właściwości

Zwraca wartość wyliczenia wskazującą ImpersonationLevel poziom personifikacji używany do nawiązywania połączenia z usługą WMI.

Przykłady

Poniższy przykład łączy się z komputerem zdalnym i wyświetla informacje o systemie operacyjnym na komputerze zdalnym. Element ConnectionOptions jest tworzony w celu nawiązania połączenia z komputerem zdalnym przy użyciu żądanych opcji połączenia.

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

Uwagi

Ustawienie ImpersonationLevel.Impersonate jest korzystne, gdy dostawca jest zaufaną aplikacją lub usługą. Eliminuje to konieczność przeprowadzenia przez dostawcę kontroli tożsamości klienta i dostępu dla żądanych operacji. Jeśli jednak z jakiegoś powodu dostawca nie może być zaufany, zezwolenie mu na personifikację klienta może stanowić zagrożenie bezpieczeństwa. W takich przypadkach zalecamy ustawienie tej właściwości przez klienta na niższą wartość, taką jak ImpersonationLevel.Identify. Należy pamiętać, że może to spowodować niepowodzenie dostawcy do wykonania żądanych operacji, brak wystarczających uprawnień lub niezdolność do przeprowadzania kontroli dostępu.

Wartość właściwości

Poziom personifikacji COM, który ma być używany na potrzeby operacji w tym połączeniu. Wartość domyślna to ImpersonationLevel.Impersonate, która wskazuje, że dostawca WMI może personifikować klienta podczas wykonywania żądanych operacji w tym połączeniu.

Zabezpieczenia.NET Framework

Pełne zaufanie do bezpośredniego wywołującego. Ten element członkowski nie może być używany przez kod częściowo zaufany. Aby uzyskać więcej informacji, zobacz Using Libraries from Partially Trusted Code (Używanie bibliotek z częściowo zaufanego kodu).

Dotyczy